https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66089
--- Comment #25 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
I've come to a bit of a different conclusion.
For
module x
implicit none
contains
elemental subroutine foo(a,b)
real, intent(inout) :: a
real, intent(in), optional :: b
if (present(b)) a = a + b
end subroutine foo
end module x
program main
use x
real :: a(10)
a = 1.
call foo(a)
print *,a
end program main
we (I think correctly) generate
{
if (b != 0B)
{
*a = *a + *b;
}
L.1:;
}
