llvm.org GIT mirror llvm / release_38 test / Transforms / LowerSwitch / delete-default-block-crash.ll
release_38

Tree @release_38 (Download .tar.gz)

delete-default-block-crash.ll @release_38raw · history · blame

; RUN: opt < %s -lowerswitch -disable-output

; This test verify -lowerswitch does not crash after deleting the default block.

declare i32 @f(i32)

define i32 @unreachable(i32 %x) {

entry:
  switch i32 %x, label %unreachable [
    i32 5, label %a
    i32 6, label %a
    i32 7, label %a
    i32 10, label %b
    i32 20, label %b
    i32 30, label %b
    i32 40, label %b
  ]
unreachable:
  unreachable
a:
  %0 = call i32 @f(i32 0)
  ret i32 %0
b:
  %1 = call i32 @f(i32 1)
  ret i32 %1
}