https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95446
Bug ID: 95446
Summary: False positive for optional arguments of elemental
procedure
Product: gcc
Version: 10.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: m.diehl at mpie dot de
Target Milestone: ---
to my understanding, the following code is valid
program elemental_optional
implicit none
integer :: m(5), r(5)
m = 1
r = outer()
r = outer(m)
contains
function outer(o) result(l)
integer, intent(in), optional :: o(:)
integer :: u(5), l(5)
l = inner(o,u)
end function outer
elemental function inner(a,b) result(x)
integer, intent(in), optional :: a
integer, intent(in) :: b
integer :: x
if(present(a)) then
x = a*b
else
x = b
endif
end function inner
end program elemental_optional
however, when compiling with "-pedantic-errors", the following error message
shows up:
Error: ‘o’ at (1) is an array and OPTIONAL; IF IT IS MISSING, it cannot be the
actual argument of an ELEMENTAL procedure unless there is a non-optional
argument with the same rank (12.4.1.5) [-Werror=pedantic]