! { dg-do compile } ! { dg-options "-fdump-tree-original -ffrontend-optimize" } ! PR 67202 Check different situations for when a local copy of an ! argument passed by references should be made. module x implicit none contains subroutine foo (a, b, c, d, e, f, g, h, ios, recl) real :: a, b, c, d, e, f, g, h integer :: n, ios, recl read (*,*, iostat=ios) a write (*,*) b inquire (unit=10, recl=recl) call bar (c, d) write (*,*) baz(e, g), sin(f) end subroutine foo subroutine bar(x, y) real, intent(in) :: x real :: y end subroutine bar real function baz(xx,yy) real, intent(inout) :: xx real, intent(in) :: yy baz = 42. xx = yy + 1. end function baz end module x ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_a" 0 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_ios" 0 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_b" 3 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_recl" 0 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_c" 3 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_d" 0 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_e" 0 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_f" 3 "original" } } ! { dg-final { scan-tree-dump-times "__dummy_\[0-9\]_g" 3 "original" } }