! { dg-do compile } | |
! { dg-options "-Ofast" } | |
subroutine s (x) | |
real :: x | |
call sub (x) | |
end | |
subroutine sub (x) | |
real :: x, y | |
logical :: a, b | |
real :: f1, f2, f3, f4 | |
y = f1() | |
a = .false. | |
if ( f2() > f3() ) a = .true. | |
b = .false. | |
if ( f2() > f4() ) b = .true. | |
if ( a ) then | |
x = 1.0 | |
else if ( b ) then | |
x = 1.0/y**2 | |
else | |
x = 1.0/y - y**2 | |
end if | |
end |