! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck --check-prefixes=CHECK,CHECK-32 -DDEFAULT_INTEGER_SIZE=32 %s ! RUN: %flang_fc1 -fdefault-integer-8 -emit-hlfir %s -o - | FileCheck --check-prefixes=CHECK,CHECK-64 -DDEFAULT_INTEGER_SIZE=64 %s ! CHECK-LABEL: func @_QPexit_test1() { subroutine exit_test1 call exit() ! CHECK: %[[status:.*]] = arith.constant 0 : i[[DEFAULT_INTEGER_SIZE]] ! CHECK-64: %[[statusConvert:.*]] = fir.convert %[[status]] : (i64) -> i32 ! CHECK-32: fir.call @_FortranAExit(%[[status]]) {{.*}}: (i32) -> () ! CHECK-64: fir.call @_FortranAExit(%[[statusConvert]]) {{.*}}: (i32) -> () end subroutine exit_test1 ! CHECK-LABEL: func @_QPexit_test2( ! CHECK-SAME: %[[statusArg:.*]]: !fir.ref{{.*}}) { subroutine exit_test2(status) integer :: status call exit(status) ! CHECK: %[[DSTATUS:.*]]:2 = hlfir.declare %[[statusArg]] ! CHECK: %[[status:.*]] = fir.load %[[DSTATUS]]#0 : !fir.ref ! CHECK-64: %[[statusConv:.*]] = fir.convert %[[status]] : (i64) -> i32 ! CHECK-32: fir.call @_FortranAExit(%[[status]]) {{.*}}: (i32) -> () ! CHECK-64: fir.call @_FortranAExit(%[[statusConv]]) {{.*}}: (i32) -> () end subroutine exit_test2 ! CHECK-LABEL: func @_QPexit_test3( ! CHECK-SAME: %[[statusArg:.*]]: !fir.ref{{.*}}) { subroutine exit_test3(status) integer(kind=4) :: status ! CHECK: %[[DSTATUS:.*]]:2 = hlfir.declare %[[statusArg]] ! CHECK: %[[status:.*]] = fir.load %[[DSTATUS]]#0 : !fir.ref ! CHECK-32: fir.call @_FortranAExit(%[[status]]) {{.*}}: (i32) -> () ! CHECK-64: fir.call @_FortranAExit(%[[status]]) {{.*}}: (i32) -> () call exit(status) end subroutine exit_test3