| /// Test mainfile in a sanitizer special case list. |
| // RUN: rm -rf %t && split-file %s %t && cd %t |
| // RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment a.c -o - | FileCheck %s --check-prefixes=CHECK,DEFAULT |
| // RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=a.list a.c -o - | FileCheck %s --check-prefixes=CHECK,IGNORE |
| // RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=b.list a.c -o - | FileCheck %s --check-prefixes=CHECK,IGNORE |
| |
| //--- a.list |
| mainfile:*a.c |
| |
| //--- b.list |
| [address] |
| mainfile:*a.c |
| |
| [alignment] |
| mainfile:*.c |
| |
| //--- a.h |
| int global_h; |
| |
| static inline int load(int *x) { |
| return *x; |
| } |
| |
| //--- a.c |
| #include "a.h" |
| |
| int global_c; |
| |
| int foo(void *x) { |
| return load(x); |
| } |
| |
| // DEFAULT: @___asan_gen_{{.*}} = {{.*}} c"global_h\00" |
| // DEFAULT: @___asan_gen_{{.*}} = {{.*}} c"global_c\00" |
| // IGNORE-NOT: @___asan_gen_ |
| |
| // CHECK-LABEL: define {{.*}}@load( |
| // DEFAULT: call void @__ubsan_handle_type_mismatch_v1_abort( |
| // DEFAULT: call void @__asan_report_load4( |
| // IGNORE-NOT: call void @__ubsan_handle_type_mismatch_v1_abort( |
| // IGNORE-NOT: call void @__asan_report_load4( |