brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · e229a9d Raw
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