blob: 1b6f0e807afd6ec76d842f52e3fef80df614145e [file] [log] [blame]
Bill Wendling3bba3ef2013-02-20 19:30:01 +00001// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck -check-prefix=WITHOUT %s
2// RUN: %clang_cc1 -emit-llvm -o - %s -fsanitize=address | FileCheck -check-prefix=ASAN %s
Alexander Potapenko89651ea2012-02-02 11:49:28 +00003
4@interface MyClass
5+ (int) addressSafety:(int*)a;
6@end
7
8@implementation MyClass
9
Bill Wendling3bba3ef2013-02-20 19:30:01 +000010// WITHOUT: +[MyClass load]{{.*}}#0
Bill Wendlingf7a9da02013-02-20 07:22:19 +000011// ASAN: +[MyClass load]{{.*}}#0
Alexander Potapenko89651ea2012-02-02 11:49:28 +000012+(void) load { }
13
Bill Wendling3bba3ef2013-02-20 19:30:01 +000014// WITHOUT: +[MyClass addressSafety:]{{.*}}#0
Bill Wendlingf7a9da02013-02-20 07:22:19 +000015// ASAN: +[MyClass addressSafety:]{{.*}}#0
Alexander Potapenko89651ea2012-02-02 11:49:28 +000016+ (int) addressSafety:(int*)a { return *a; }
17
18@end
Bill Wendlingf7a9da02013-02-20 07:22:19 +000019
Kostya Serebryany85aee962013-02-26 06:58:27 +000020// ASAN: attributes #0 = {{.*}}sanitize_address
21// WITHOUT-NOT: attributes #0 = {{.*}}sanitize_address