xref: /llvm-project/compiler-rt/test/asan/TestCases/Linux/odr_indicators.cpp (revision ee7d41d179a974dcf49d3bc08d850268e9b06f20)
1 // RUN: %clangxx_asan -fno-sanitize-address-use-odr-indicator -fPIC %s -o %t
2 // RUN: %env_asan_opts=report_globals=2 %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,INDICATOR0
3 
4 // RUN: %clangxx_asan -fsanitize-address-use-odr-indicator -fPIC %s -o %t
5 // RUN: %env_asan_opts=report_globals=2 %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,INDICATOR1
6 
7 #include <stdio.h>
8 
9 int test_global_1;
10 // INDICATOR0-DAG: Added Global{{.*}} name=test_global_1{{.*}} odr_indicator={{0x0+$}}
11 // INDICATOR1-DAG: Added Global{{.*}} name=test_global_1{{.*}} odr_indicator={{0x0*[^0]+.*$}}
12 
13 static int test_global_2;
14 // CHECK-DAG: Added Global{{.*}} name=test_global_2{{.*}} source={{.*}} module={{.*}}.cpp.tmp {{.*}} odr_indicator={{0xf+$}}
15 
16 namespace {
17 static int test_global_3;
18 // CHECK-DAG: Added Global{{.*}} name={{.*}}::test_global_3{{.*}} source={{.*}} module={{.*}}.cpp.tmp {{.*}} odr_indicator={{0xf+$}}
19 } // namespace
20 
main()21 int main() {
22   const char f[] = "%d %d %d\n";
23   // CHECK-DAG: Added Global{{.*}} name=__const.main.f{{.*}} source={{.*}} module={{.*}}.cpp.tmp {{.*}} odr_indicator={{0xf+$}}
24   printf(f, test_global_1, test_global_2, test_global_3);
25   return 0;
26 }
27