33 lines · plain
1! RUN: bbc %s -emit-fir --canonicalize -o - | FileCheck %s2 3! CHECK-LABEL: pause_test4subroutine pause_test()5 pause6 ! CHECK: fir.call @_FortranA{{.*}}PauseStatement()7 ! CHECK-NEXT: return8end subroutine9 10! CHECK-LABEL: pause_code11subroutine pause_code()12 pause 4213 ! CHECK: %[[c42:.*]] = arith.constant 42 : i3214 ! CHECK: fir.call @_FortranA{{.*}}PauseStatementInt(%[[c42]])15 ! CHECK-NEXT: return16end subroutine17 18! CHECK-LABEL: pause_msg19subroutine pause_msg()20 pause "hello"21 ! CHECK-DAG: %[[five:.*]] = arith.constant 5 : index22 ! CHECK-DAG: %[[addr:.*]] = fir.address_of(@_QQ{{.*}}) : !fir.ref<!fir.char<1,5>>23 ! CHECK-DAG: %[[str:.*]]:2 = hlfir.declare %[[addr]] typeparams %[[five]] {fortran_attrs = #fir.var_attrs<parameter>, uniq_name = "_QQ{{.*}}"} : (!fir.ref<!fir.char<1,5>>, index) -> (!fir.ref<!fir.char<1,5>>, !fir.ref<!fir.char<1,5>>)24 ! CHECK-DAG: %[[buff:.*]] = fir.convert %[[str]]#0 : (!fir.ref<!fir.char<1,5>>) -> !fir.ref<i8>25 ! CHECK-DAG: %[[len:.*]] = fir.convert %[[five]] : (index) -> i6426 ! CHECK: fir.call @_FortranA{{.*}}PauseStatementText(%[[buff]], %[[len]])27 ! CHECK-NEXT: return28end subroutine29 30! CHECK-DAG: func private @_FortranA{{.*}}PauseStatement31! CHECK-DAG: func private @_FortranA{{.*}}PauseStatementInt32! CHECK-DAG: func private @_FortranA{{.*}}PauseStatementText33