| ! PR tree-optimization/109265 |
| ! { dg-do compile } |
| ! { dg-options "-O3 -w" } |
| |
| module pr109265 |
| integer, parameter :: r8 = selected_real_kind (12) |
| contains |
| subroutine foo (b, c, d, e, f) |
| implicit none |
| logical :: b |
| real (kind = r8) :: c, d, e, f, i |
| if (b) then |
| c = bar (c * d, e) |
| i = bar (f, c) |
| call baz (i) |
| call baz (-i) |
| end if |
| end subroutine foo |
| function bar (a, b) |
| implicit none |
| real (kind = r8) :: bar |
| real (kind = r8) :: a, b |
| bar = a + b |
| end function bar |
| subroutine baz (b) |
| implicit none |
| real (kind = r8) :: b, d, e, f, g, h, i |
| d = b |
| i = 0 |
| e = d |
| f = d |
| g = d |
| 10 continue |
| if ((e.eq.d) .and. (f.eq.d) .and. (g.eq.d) .and. (h.eq.d)) then |
| h = i |
| goto 10 |
| end if |
| end subroutine baz |
| end module pr109265 |