xref: /llvm-project/flang/test/Lower/control-flow.f90 (revision f35f863a88f83332bef9605ef4cfe4f05c066efb)
1! Tests for control-flow
2
3! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
4
5! check the lowering of a RETURN in the body of a SUBROUTINE
6! CHECK-LABEL one
7subroutine one(a,b,c)
8  d = 1.0
9  if (a .ne. b) then
10    ! CHECK: call @_QPone_a
11    call one_a(d)
12    ! CHECK: cond_br %{{.*}}, ^bb[[TB:.*]], ^
13    if (d .eq. 1.0) then
14       ! CHECK-NEXT: ^bb[[TB]]:
15       ! CHECK-NEXT: br ^bb[[EXIT:.*]]
16       return
17    endif
18 else
19    e = 4.0
20    call one_b(c,d,e)
21 endif
22 ! CHECK: ^bb[[EXIT]]:
23 ! CHECK-NEXT: return
24end subroutine one
25
26