diff options
author | Alexander Potapenko <glider@google.com> | 2014-03-14 10:41:49 +0000 |
---|---|---|
committer | Alexander Potapenko <glider@google.com> | 2014-03-14 10:41:49 +0000 |
commit | 4c04ecd1492caf8c12933394403a08f76ed36270 (patch) | |
tree | 84c56a7a966c0f714615b666b8d55bc4f2cc6112 /test/asan/TestCases/Darwin/cstring_literals_regtest.mm | |
parent | 30dfeda2c9292e4519d283f73ed700ac838f275a (diff) |
[ASan] Fix https://code.google.com/p/address-sanitizer/issues/detail?id=274
by ignoring globals from __TEXT,__cstring,cstring_literals during instrumenation.
Add a regression test.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@203916 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/asan/TestCases/Darwin/cstring_literals_regtest.mm')
-rw-r--r-- | test/asan/TestCases/Darwin/cstring_literals_regtest.mm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/asan/TestCases/Darwin/cstring_literals_regtest.mm b/test/asan/TestCases/Darwin/cstring_literals_regtest.mm new file mode 100644 index 000000000..1bb696c47 --- /dev/null +++ b/test/asan/TestCases/Darwin/cstring_literals_regtest.mm @@ -0,0 +1,23 @@ +// Regression test for +// https://code.google.com/p/address-sanitizer/issues/detail?id=274. + +// RUN: %clang_asan %s -framework Foundation -o %t +// RUN: %t 2>&1 | FileCheck %s +#import <Foundation/Foundation.h> + +#include <stdio.h> + +int main() { + NSString* version_file = @"MAJOR=35\n"; + int major = 0, minor = 0, build = 0, patch = 0; + NSScanner* scanner = [NSScanner scannerWithString:version_file]; + NSString *res = nil; + if ([scanner scanString:@"MAJOR=" intoString:nil] && + [scanner scanInt:&major]) { + res = [NSString stringWithFormat:@"%d.%d.%d.%d", + major, minor, build, patch]; + } + printf("%s\n", [res UTF8String]); + // CHECK: 35.0.0.0 + return 0; +} |