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]