xref: /llvm-project/llvm/test/Instrumentation/SanitizerCoverage/chains.ll (revision 86d1a0b30684f2ab8ec33f0b6fa3d05e4bada0c8)
1*eca01b03SLeonard Chan; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=4 -sanitizer-coverage-trace-pc -sanitizer-coverage-prune-blocks=1  -S | FileCheck %s
2a1c53278SGeorge Karpenkov
3a1c53278SGeorge Karpenkovdefine i32 @blah(i32) #0 {
4a1c53278SGeorge Karpenkov  %2 = icmp sgt i32 %0, 1
5a1c53278SGeorge Karpenkov  br i1 %2, label %branch, label %exit
6a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc()
7a1c53278SGeorge Karpenkov
8a1c53278SGeorge Karpenkovbranch:
9a1c53278SGeorge Karpenkov  br label %pos2
10a1c53278SGeorge Karpenkov; CHECK-LABEL: branch:
11a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc()
12a1c53278SGeorge Karpenkov
13a1c53278SGeorge Karpenkovpos2:
14a1c53278SGeorge Karpenkov  br label %pos3
15a1c53278SGeorge Karpenkov; CHECK-LABEL: pos2:
16a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc()
17a1c53278SGeorge Karpenkov
18a1c53278SGeorge Karpenkovpos3:
19a1c53278SGeorge Karpenkov  br label %pos4
20a1c53278SGeorge Karpenkov; CHECK-LABEL: pos3:
21a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc()
22a1c53278SGeorge Karpenkov
23a1c53278SGeorge Karpenkovpos4:
24a1c53278SGeorge Karpenkov  ret i32 0
25a1c53278SGeorge Karpenkov; CHECK-LABEL: pos4:
26a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc()
27a1c53278SGeorge Karpenkov
28a1c53278SGeorge Karpenkovexit:
29a1c53278SGeorge Karpenkov  ret i32 0
30a1c53278SGeorge Karpenkov; CHECK-LABEL: exit:
31a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc()
32a1c53278SGeorge Karpenkov
33a1c53278SGeorge Karpenkov}
34