27 lines · cpp
1// RUN: %clangxx_asan -fno-sanitize-address-use-odr-indicator -fPIC %s -o %t2// RUN: %env_asan_opts=report_globals=2 %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,INDICATOR03 4// RUN: %clangxx_asan -fsanitize-address-use-odr-indicator -fPIC %s -o %t5// RUN: %env_asan_opts=report_globals=2 %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,INDICATOR16 7#include <stdio.h>8 9int 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 13static int test_global_2;14// CHECK-DAG: Added Global{{.*}} name=test_global_2{{.*}} source={{.*}} module={{.*}}.cpp.tmp {{.*}} odr_indicator={{0xf+$}}15 16namespace {17static int test_global_3;18// CHECK-DAG: Added Global{{.*}} name={{.*}}::test_global_3{{.*}} source={{.*}} module={{.*}}.cpp.tmp {{.*}} odr_indicator={{0xf+$}}19} // namespace20 21int 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