diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/asan/TestCases/Darwin/cstring_literals_regtest.mm | 23 | ||||
-rw-r--r-- | test/asan/lit.cfg | 3 |
2 files changed, 26 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; +} diff --git a/test/asan/lit.cfg b/test/asan/lit.cfg index 3dec9f81a..21c9873af 100644 --- a/test/asan/lit.cfg +++ b/test/asan/lit.cfg @@ -81,6 +81,9 @@ if config.compiler_id == 'GNU': # Default test suffixes. config.suffixes = ['.c', '.cc', '.cpp'] +if config.host_os == 'Darwin': + config.suffixes.append('.mm') + # AddressSanitizer tests are currently supported on Linux and Darwin only. if config.host_os not in ['Linux', 'Darwin']: config.unsupported = True |