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