2021-02-11 Paul Thomas <pault@gcc.gnu.org>
gcc/fortran
PR fortran/99060
* primary.c (gfc_match_varspec): Test for non-null 'previous'
before using its name in the error message.
gcc/testsuite/
PR fortran/99060
* gfortran.dg/pr99060.f90: New test.
component = NULL;
if (intrinsic && !inquiry)
- {
- gfc_error ("%qs at %C is not an inquiry reference to an intrinsic "
- "type component %qs", name, previous->name);
+ {
+ if (previous)
+ gfc_error ("%qs at %C is not an inquiry reference to an intrinsic "
+ "type component %qs", name, previous->name);
+ else
+ gfc_error ("%qs at %C is not an inquiry reference to an intrinsic "
+ "type component", name);
return MATCH_ERROR;
- }
+ }
else if (component == NULL && !inquiry)
return MATCH_ERROR;
--- /dev/null
+! { dg-do compile }
+!
+! Test the fix for PR99060 in which the expression caused an ICE after the error.
+!
+! Contributed by Gerhard Steinmetz <gscfq@t-online.de>
+!
+program p
+ real :: a
+ print *, a%kind%n ! { dg-error "not an inquiry reference" }
+end