Commit e3942f91 by Harald Anlauf

PR fortran/95880 - ICE in gfc_add_type, at fortran/symbol.c:2030

The fix for PR39695 did not properly distinguish between procedure names
and other symbols names in errors emitted for invalid code.  Fix that.

gcc/fortran/
	PR fortran/95880
	* symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
	otherwise fall back to sym->name.

(cherry picked from commit f3a8f66a83f8c94f6fbb0233cefba8032f2e4876)
parent 6efc255f
......@@ -2027,7 +2027,9 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
|| (flavor == FL_PROCEDURE && sym->attr.subroutine)
|| flavor == FL_DERIVED || flavor == FL_NAMELIST)
{
gfc_error ("Symbol %qs at %L cannot have a type", sym->ns->proc_name->name, where);
gfc_error ("Symbol %qs at %L cannot have a type",
sym->ns->proc_name ? sym->ns->proc_name->name : sym->name,
where);
return false;
}
......
! { dg-do compile }
! PR fortran/95880 - ICE in gfc_add_type, at fortran/symbol.c:2030
module m
end
block data
use m
integer m ! { dg-error "cannot have a type" }
end block data
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment