nncarlson / gfortran.dg

The GFortran testsuite rigged for testing other Fortran compilers
7 stars 2 forks source link

Invalid code in proc_ptr_comp_45.f90 #23

Open nncarlson opened 6 years ago

nncarlson commented 6 years ago

This is a tough one. The proc_ptr_comp_45.f90 test defines a type with a procedure pointer component whose interface is elemental:

12   interface
13     real elemental function iface (arg)
14       real, intent(in) :: arg
15     end function
16  end interface
    ...
23  type :: decay_gen_t
24     procedure(iface), nopass, pointer :: obs1_int
25     type(decay_term_t), allocatable :: term
26  end type

The NAG compiler rejects this as invalid:

$ nagfor proc_ptr_comp_45.f90
NAG Fortran Compiler Release 6.2(Chiyoda) Build 6207
Error: proc_ptr_comp_45.f90, line 24: Procedure pointer component OBS1_INT of type DECAY_GEN_T is ELEMENTAL

At this point I am mostly convinced that NAG is correct here. Malcolm Cohen's explanation to my question on the comp-fortran-90 mail list is here.