]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/gfortran.h
Fortran: Fix ICE caused by missing error for untyped symbol [PR103258]
authorSandra Loosemore <sandra@codesourcery.com>
Wed, 5 Jan 2022 02:18:13 +0000 (18:18 -0800)
committerSandra Loosemore <sandra@codesourcery.com>
Wed, 5 Jan 2022 17:02:22 +0000 (09:02 -0800)
commit85a3442c85aedb00c59e986f16cccbb8ec60d777
tree2ad4990645d1b6927b0dc72f749b9fa41b35dc14
parent6aa0859afaf28f4fb13121352225bc5877e02a44
Fortran: Fix ICE caused by missing error for untyped symbol [PR103258]

The bit on a symbol to mark that it had already been diagnosed as
lacking a type was getting set even when the error was suppressed or
discarded, specifically when doing early resolution on a character
length expression to see if it can be constant-folded.  Explicitly
suppress errors before doing that, then check whether they are
suppressed before setting the bit.

2022-01-04  Sandra Loosemore  <sandra@codesourcery.com>

PR fortran/103258

gcc/fortran/
* decl.c (gfc_match_char_spec): Suppress errors around call
to gfc_reduce_init_expr.
* error.c (gfc_query_suppress_errors): New.
* gfortran.h (gfc_query_suppress_errors): Declare.
* symbol.c (gfc_set_default_type): Check gfc_query_suppress_errors.

gcc/testsuite/
* gfortran.dg/pr103258.f90: New.
gcc/fortran/decl.c
gcc/fortran/error.c
gcc/fortran/gfortran.h
gcc/fortran/symbol.c
gcc/testsuite/gfortran.dg/pr103258.f90 [new file with mode: 0644]