https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96073

--- Comment #6 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
What we have here is, in gfc_check_externals0,

(gdb) call debug(def_sym->formal) 

|| symbol: '_formal_0'    
  type spec : (INTEGER 4)
  attributes: (VARIABLE  ARTIFICIAL DUMMY)
|| symbol: '_formal_1'    
  type spec : (REAL 4)
  attributes: (VARIABLE  ARTIFICIAL DUMMY)
(gdb) call debug(sym->formal)

|| symbol: 'set'          
  type spec : (INTEGER 4)
  attributes: (VARIABLE  DUMMY(IN))
|| symbol: 'xmin'         
  type spec : (REAL 4)
  attributes: (VARIABLE  DUMMY(OUT))

so the inferred argument list from the call does not match the
interface.  And, since the location is not set, we get an ICE
on top of it.

I think resolution should have found the interface in addition
to the EXTERNAL statement.

Reply via email to