Using undeclared symbol k in an expression in the following
array constructor results in an ICE:
    print *, [real(x(k))]
If the call to the intrinsic is not in a constructor a no IMPLICIT
type error is reported and the ICE does not occur.
Matching on an expression instead of an initialisation express an
and not converting a MATCH_ERROR return value into MATCH_NO results
in the no IMPLICIT error and no ICE.
Note: Steven G. Kargl  <kargl@gcc.gnu.org> is the author of the
changes except for the test cases.
gcc/fortran/ChangeLog:
	PR fortran/93484
	* match.c (gfc_match_type_spec): Replace gfc_match_init_expr with
	gfc_match_expr. Return m if m is MATCH_NO or MATCH_ERROR.
gcc/testsuite
	PR fortran/93484
	* gfortran.dg/pr93484_1.f90: New test.
	* gfortran.dg/pr93484_2.f90: New test.
| Name | Last commit | Last update | 
|---|---|---|
| .. | ||
| ChangeLog | Loading commit data... | |
| ChangeLog-2002 | Loading commit data... | |
| ChangeLog-2003 | Loading commit data... | |
| ChangeLog-2004 | Loading commit data... | |
| ChangeLog-2005 | Loading commit data... | |
| ChangeLog-2006 | Loading commit data... | |
| ChangeLog-2007 | Loading commit data... | |
| ChangeLog-2008 | Loading commit data... | |
| ChangeLog-2009 | Loading commit data... | |
| ChangeLog-2010 | Loading commit data... | |
| ChangeLog-2011 | Loading commit data... | |
| ChangeLog-2012 | Loading commit data... | |
| ChangeLog-2013 | Loading commit data... | |
| ChangeLog-2014 | Loading commit data... | |
| ChangeLog-2015 | Loading commit data... | |
| ChangeLog-2016 | Loading commit data... | |
| ChangeLog-2017 | Loading commit data... | |
| ChangeLog-2018 | Loading commit data... | |
| ChangeLog-2019 | Loading commit data... | |
| ChangeLog.ptr | Loading commit data... | |
| Make-lang.in | Loading commit data... | |
| arith.c | Loading commit data... | |
| arith.h | Loading commit data... | |
| array.c | Loading commit data... | |
| bbt.c | Loading commit data... | |
| check.c | Loading commit data... | |
| class.c | Loading commit data... | |
| config-lang.in | Loading commit data... | |
| constructor.c | Loading commit data... | |
| constructor.h | Loading commit data... | |
| convert.c | Loading commit data... | |
| cpp.c | Loading commit data... | |
| cpp.h | Loading commit data... | |
| data.c | Loading commit data... | |
| data.h | Loading commit data... | |
| decl.c | Loading commit data... | |
| dependency.c | Loading commit data... | |
| dependency.h | Loading commit data... | |
| dump-parse-tree.c | Loading commit data... | |
| error.c | Loading commit data... | |
| expr.c | Loading commit data... | |
| f95-lang.c | Loading commit data... | |
| frontend-passes.c | Loading commit data... | |
| gfc-diagnostic.def | Loading commit data... | |
| gfc-internals.texi | Loading commit data... | |
| gfortran.h | Loading commit data... | |
| gfortran.texi | Loading commit data... | |
| gfortranspec.c | Loading commit data... | |
| interface.c | Loading commit data... | |
| intrinsic.c | Loading commit data... | |
| intrinsic.h | Loading commit data... | |
| intrinsic.texi | Loading commit data... | |
| invoke.texi | Loading commit data... | |
| io.c | Loading commit data... | |
| ioparm.def | Loading commit data... | |
| iresolve.c | Loading commit data... | |
| iso-c-binding.def | Loading commit data... | |
| iso-fortran-env.def | Loading commit data... | |
| lang-specs.h | Loading commit data... | |
| lang.opt | Loading commit data... | |
| libgfortran.h | Loading commit data... | |
| match.c | Loading commit data... | |
| match.h | Loading commit data... | |
| matchexp.c | Loading commit data... | |
| mathbuiltins.def | Loading commit data... | |
| misc.c | Loading commit data... | |
| module.c | Loading commit data... | |
| openmp.c | Loading commit data... | |
| options.c | Loading commit data... | |
| parse.c | Loading commit data... | |
| parse.h | Loading commit data... | |
| primary.c | Loading commit data... | |
| resolve.c | Loading commit data... | |
| scanner.c | Loading commit data... | |
| scanner.h | Loading commit data... | |
| simplify.c | Loading commit data... | |
| st.c | Loading commit data... | |
| symbol.c | Loading commit data... | |
| target-memory.c | Loading commit data... | |
| target-memory.h | Loading commit data... | |
| trans-array.c | Loading commit data... | |
| trans-array.h | Loading commit data... | |
| trans-common.c | Loading commit data... | |
| trans-const.c | Loading commit data... | |
| trans-const.h | Loading commit data... | |
| trans-decl.c | Loading commit data... | |
| trans-expr.c | Loading commit data... | |
| trans-intrinsic.c | Loading commit data... | |
| trans-io.c | Loading commit data... | |
| trans-openmp.c | Loading commit data... | |
| trans-stmt.c | Loading commit data... | |
| trans-stmt.h | Loading commit data... | |
| trans-types.c | Loading commit data... | |
| trans-types.h | Loading commit data... | |
| trans.c | Loading commit data... | |
| trans.h | Loading commit data... | |
| types.def | Loading commit data... |