47 lines · plain
1; RUN: opt < %s -S -passes='module(sancov-module)' -sanitizer-coverage-level=3 | FileCheck %s2 3; The critical edges to unreachable_bb should not be split.4define i32 @foo(i32 %c, i32 %d) {5; CHECK-LABEL: @foo(6; CHECK: switch i32 [[C:%.*]], label [[UNREACHABLE_BB:%.*]] [7; CHECK-NEXT: i32 0, label %exit08; CHECK-NEXT: i32 1, label %exit19; CHECK-NEXT: i32 2, label %cont10; CHECK-NEXT: ]11; CHECK: cont:12; CHECK: switch i32 [[D:%.*]], label [[UNREACHABLE_BB]] [13; CHECK-NEXT: i32 0, label %exit214; CHECK-NEXT: i32 1, label %exit315; CHECK-NEXT: i32 2, label %exit416; CHECK-NEXT: ]17; CHECK: unreachable_bb:18; CHECK-NEXT: unreachable19;20 switch i32 %c, label %unreachable_bb [i32 0, label %exit021 i32 1, label %exit122 i32 2, label %cont]23 24cont:25 switch i32 %d, label %unreachable_bb [i32 0, label %exit226 i32 1, label %exit327 i32 2, label %exit4]28 29exit0:30 ret i32 031 32exit1:33 ret i32 134 35exit2:36 ret i32 237 38exit3:39 ret i32 340 41exit4:42 ret i32 443 44unreachable_bb:45 unreachable46}47