xref: /aosp_15_r20/external/clang/test/CodeGen/ubsan-blacklist.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Verify ubsan doesn't emit checks for blacklisted functions and files
2*67e74705SXin Li // RUN: echo "fun:hash" > %t-func.blacklist
3*67e74705SXin Li // RUN: echo "src:%s" > %t-file.blacklist
4*67e74705SXin Li // RUN: %clang_cc1 -fsanitize=unsigned-integer-overflow -emit-llvm %s -o - | FileCheck %s --check-prefix=DEFAULT
5*67e74705SXin Li // RUN: %clang_cc1 -fsanitize=unsigned-integer-overflow -fsanitize-blacklist=%t-func.blacklist -emit-llvm %s -o - | FileCheck %s --check-prefix=FUNC
6*67e74705SXin Li // RUN: %clang_cc1 -fsanitize=unsigned-integer-overflow -fsanitize-blacklist=%t-file.blacklist -emit-llvm %s -o - | FileCheck %s --check-prefix=FILE
7*67e74705SXin Li 
8*67e74705SXin Li // FIXME: %t-file.blacklist contains DOSish paths.
9*67e74705SXin Li // REQUIRES: shell
10*67e74705SXin Li 
11*67e74705SXin Li unsigned i;
12*67e74705SXin Li 
13*67e74705SXin Li // DEFAULT: @hash
14*67e74705SXin Li // FUNC: @hash
15*67e74705SXin Li // FILE: @hash
hash()16*67e74705SXin Li unsigned hash() {
17*67e74705SXin Li // DEFAULT: call {{.*}}void @__ubsan
18*67e74705SXin Li // FUNC-NOT: call {{.*}}void @__ubsan
19*67e74705SXin Li // FILE-NOT: call {{.*}}void @__ubsan
20*67e74705SXin Li   return i * 37;
21*67e74705SXin Li }
22*67e74705SXin Li 
23*67e74705SXin Li // DEFAULT: @add
24*67e74705SXin Li // FUNC: @add
25*67e74705SXin Li // FILE: @add
add()26*67e74705SXin Li unsigned add() {
27*67e74705SXin Li // DEFAULT: call {{.*}}void @__ubsan
28*67e74705SXin Li // FUNC: call {{.*}}void @__ubsan
29*67e74705SXin Li // FILE-NOT: call {{.*}}void @__ubsan
30*67e74705SXin Li   return i + 1;
31*67e74705SXin Li }
32