https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83939
Bug ID: 83939 Summary: Constraint C1290 (elemental function cannot be allocatable) not enforced Product: gcc Version: 7.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: vladimir.fuka at gmail dot com Target Milestone: --- Based on report https://stackoverflow.com/questions/48331223/fortran-elemental-function-is-this-behavior-normal . The following code is illegal Fortran 2008, but compiles cleanly: elemental function f() result(s) allocatable s allocate(s) s = 3.5 end function gfortran-7 -c -Wall -Wextra -Wsurprising allocelem.f90 If the `result()` clause is not used, the constraint is caught: elemental function s()! result(s) allocatable s allocate(s) s = 3.5 end function > gfortran-7 -c -Wall -Wextra -Wsurprising allocelem.f90 allocelem.f90:2:15: allocatable s 1 Error: ALLOCATABLE attribute conflicts with ELEMENTAL attribute at (1) allocelem.f90:3:11: allocate(s) 1 Error: Allocate-object at (1) is neither a data pointer nor an allocatable variable