File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ // RUN: rm -rf %t
2+ // RUN: split-file %s %t
3+ // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,IGNORE
4+ // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist -emit-llvm %t/test2.c -o - | FileCheck %s --check-prefixes=CHECK2
5+
6+ // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict1 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,IGNORE
7+ // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict1 -emit-llvm %t/test2.c -o - | FileCheck %s --check-prefixes=CHECK2
8+
9+ // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict2 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,IGNORE
10+ // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict2 -emit-llvm %t/test2.c -o - | FileCheck %s --check-prefixes=CHECK2
11+
12+
13+ // Verify ubsan only emits checks for files in the allowlist
14+ // FIXME: implement.
15+
16+ //--- src.ignorelist
17+ src:*
18+ src:*/test1.c=sanitize
19+
20+ //--- src.ignorelist.contradict1
21+ src:*
22+ src:*/test1.c=sanitize
23+ src:*/test1.c
24+
25+ //--- src.ignorelist.contradict2
26+ src:*
27+ src:*/test1.c
28+ src:*/test1.c=sanitize
29+
30+ //--- test1.c
31+ // CHECK1-LABEL: define dso_local i32 @add
32+ int add(int a, int b) {
33+ // IGNORE: %add = add nsw
34+ // SANITIZE: = call { i32, i1 } @llvm.sadd.with.overflow.i32
35+ return a+b;
36+ }
37+
38+ //--- test2.c
39+ // CHECK2-LABEL: define dso_local i32 @sub
40+ int sub(int a, int b) {
41+ // CHECK2: %sub = sub nsw
42+ return a-b;
43+ }
You can’t perform that action at this time.
0 commit comments