diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-07-01 13:24:15 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-07-01 13:24:15 +0000 |
commit | 50aa32eff79f252ab05a0c0a589cf2ca37cd9923 (patch) | |
tree | 26de9fb78670a86ae63c21707b85c414cbf9d012 /test/asan/TestCases/Darwin/nil-return-struct.mm | |
parent | 10fcf738d732204a1f1e28878d68a27c5f12cf3b (diff) | |
download | src-50aa32eff79f252ab05a0c0a589cf2ca37cd9923.tar.gz src-50aa32eff79f252ab05a0c0a589cf2ca37cd9923.zip |
Vendor import of compiler-rt trunk r306956:vendor/compiler-rt/compiler-rt-trunk-r306956
Notes
Notes:
svn path=/vendor/compiler-rt/dist/; revision=320537
svn path=/vendor/compiler-rt/compiler-rt-trunk-r306956/; revision=320538; tag=vendor/compiler-rt/compiler-rt-trunk-r306956
Diffstat (limited to 'test/asan/TestCases/Darwin/nil-return-struct.mm')
-rw-r--r-- | test/asan/TestCases/Darwin/nil-return-struct.mm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/asan/TestCases/Darwin/nil-return-struct.mm b/test/asan/TestCases/Darwin/nil-return-struct.mm new file mode 100644 index 000000000000..9fb77e746339 --- /dev/null +++ b/test/asan/TestCases/Darwin/nil-return-struct.mm @@ -0,0 +1,31 @@ +// RUN: %clang_asan %s -o %t -framework Foundation +// RUN: %run %t 2>&1 | FileCheck %s + +#import <Foundation/Foundation.h> + +struct MyStruct { + long a, b, c, d; +}; + +@interface MyClass: NSObject +- (MyStruct)methodWhichReturnsARect; +@end +@implementation MyClass +- (MyStruct)methodWhichReturnsARect { + MyStruct s; + s.a = 10; + s.b = 20; + s.c = 30; + s.d = 40; + return s; +} +@end + +int main() { + MyClass *myNil = nil; // intentionally nil + [myNil methodWhichReturnsARect]; + fprintf(stderr, "Hello world"); +} + +// CHECK-NOT: AddressSanitizer: stack-use-after-scope +// CHECK: Hello world |