1 ! RUN: bbc %s -o - | FileCheck %s
3 ! CHECK-LABEL: func @_QPformatassign
4 subroutine formatAssign(flag1
, flag2
, flag3
)
7 logical :: flag1
, flag2
, flag3
9 ! CHECK-DAG: %[[ONE:.*]] = arith.constant 100 : i32
10 ! CHECK-DAG: %[[TWO:.*]] = arith.constant 200 : i32
17 ! CHECK: cond_br %{{.*}}, ^bb[[BLK1:.*]], ^bb[[BLK2:.*]]
19 ! CHECK: fir.store %[[ONE]]
20 ! CHECK: br ^bb[[END_BLOCK:.*]]
22 ! CHECK: fir.store %[[TWO]]
23 ! CHECK: br ^bb[[END_BLOCK]]
24 ! CHECK: ^bb[[END_BLOCK]]
25 ! CHECK: fir.call @{{.*}}ReportFatalUserError
26 ! CHECK: fir.unreachable
27 ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput
28 ! CHECK: fir.call @{{.*}}OutputAscii
29 ! CHECK: fir.call @{{.*}}OutputReal32
30 ! CHECK: fir.call @{{.*}}EndIoStatement
32 write(*, label
) " PI=", pi
33 ! CHECK: fir.call @{{.*}}ReportFatalUserError
34 ! CHECK: fir.unreachable
35 ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput
36 ! CHECK: fir.call @{{.*}}OutputAscii
37 ! CHECK: fir.call @{{.*}}OutputReal32
38 ! CHECK: fir.call @{{.*}}EndIoStatement
39 if (flag2
) write(*, label
) "2PI=", 2*pi
40 if (flag1
.and
. flag2
.and
. flag3
) then
46 ! CHECK: fir.call @{{.*}}ReportFatalUserError
47 ! CHECK: fir.unreachable
48 ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput
49 ! CHECK: fir.call @{{.*}}OutputAscii
50 ! CHECK: fir.call @{{.*}}OutputReal32
51 ! CHECK: fir.call @{{.*}}EndIoStatement
52 write(*, label
) "3PI=", 3*pi
61 ! CHECK-LABEL: func @_QQmain
62 call formatAssign(.true
., .true
., .true
.)
64 call formatAssign(.true
., .false
., .true
.)