! Test that dead code elimination after lowering does not merge ! blocks. This test was added because block merging on the ! code below created a block with a fir.shape<> block argument ! which FIR codegen is not intended to support. ! RUN: bbc -emit-hlfir -o - %s | FileCheck %s subroutine test(res, selector, x1, x2, x3, x4, x5, x6, x7, x8) integer :: res character(*) :: selector real(8), dimension(7) :: x1, x2, x3, x4, x5, x6, x7, x8 interface integer function foo(x) real(8) :: x(:) end function end interface select case (selector) case ("01") res = foo(x1) res = foo(x1) case ("02") res = foo(x2) res = foo(x2) case ("03") res = foo(x3) res = foo(x3) case ("04") res = foo(x4) res = foo(x4) case ("05") res = foo(x5) res = foo(x5) case ("06") res = foo(x6) res = foo(x6) case ("07") res = foo(x7) res = foo(x7) case ("08") res = foo(x8) res = foo(x8) case default end select end subroutine ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo ! CHECK: fir.call @_QPfoo