86 lines · plain
1; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=4 -sanitizer-coverage-trace-pc -sanitizer-coverage-prune-blocks=1 -S | FileCheck %s2; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=4 -sanitizer-coverage-trace-pc -sanitizer-coverage-prune-blocks=0 -S | FileCheck %s --check-prefix=CHECK_NO_PRUNE3 4define i32 @foo(i32) #0 {5 %2 = icmp sgt i32 %0, 06 br i1 %2, label %left, label %right7; CHECK: call void @__sanitizer_cov_trace_pc()8 9; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()10 11left:12 %3 = icmp sgt i32 %0, 1013 br i1 %3, label %left_left, label %left_right14; CHECK-LABEL: left:15; CHECK-NOT: call void @__sanitizer_cov_trace_pc()16 17; CHECK_NO_PRUNE-LABEL: left:18; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()19 20left_left:21 br label %left_join22; CHECK-LABEL: left_left:23; CHECK: call void @__sanitizer_cov_trace_pc()24 25; CHECK_NO_PRUNE-LABEL: left_left:26; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()27 28left_right:29 br label %left_join30; CHECK-LABEL: left_right:31; CHECK: call void @__sanitizer_cov_trace_pc()32 33; CHECK_NO_PRUNE-LABEL: left_right:34; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()35 36left_join:37 br label %finish38; CHECK-LABEL: left_join:39; CHECK-NOT: call void @__sanitizer_cov_trace_pc()40 41; CHECK_NO_PRUNE-LABEL: left_join:42; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()43 44right:45 %4 = icmp sgt i32 %0, 1046 br i1 %4, label %right_left, label %right_right47; CHECK-LABEL: right:48; CHECK-NOT: call void @__sanitizer_cov_trace_pc()49 50; CHECK_NO_PRUNE-LABEL: right:51; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()52 53right_left:54 br label %right_join55; CHECK-LABEL: right_left:56; CHECK: call void @__sanitizer_cov_trace_pc()57 58; CHECK_NO_PRUNE-LABEL: right_left:59; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()60 61right_right:62 br label %right_join63; CHECK-LABEL: right_right:64; CHECK: call void @__sanitizer_cov_trace_pc()65 66; CHECK_NO_PRUNE-LABEL: right_right:67; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()68 69right_join:70 br label %finish71; CHECK-LABEL: right_join:72; CHECK-NOT: call void @__sanitizer_cov_trace_pc()73 74; CHECK_NO_PRUNE-LABEL: right_join:75; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()76 77finish:78 ret i32 %079; CHECK-LABEL: finish:80; CHECK-NOT: call void @__sanitizer_cov_trace_pc()81 82; CHECK_NO_PRUNE-LABEL: finish:83; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc()84 85}86