diff options
author | Haochen Gui <guihaoc@gcc.gnu.org> | 2023-03-24 10:45:52 +0800 |
---|---|---|
committer | Haochen Gui <guihaoc@gcc.gnu.org> | 2023-03-24 10:47:13 +0800 |
commit | 3b67db31236631432e7f6d74ed49af9ae2183a4d (patch) | |
tree | 8bce8ec5e48fcd55fa984121d1b690206356e297 /gcc/fortran/error.cc | |
parent | 08ef17c75777ef9e4e7ead132ccd7a6d03ae6020 (diff) | |
download | gcc-3b67db31236631432e7f6d74ed49af9ae2183a4d.zip gcc-3b67db31236631432e7f6d74ed49af9ae2183a4d.tar.gz gcc-3b67db31236631432e7f6d74ed49af9ae2183a4d.tar.bz2 |
Fortran: Escalate failure when Hollerith constant to real conversion fails
gcc/fortran/
PR target/103628
* target-memory.cc (gfc_interpret_float): Return FAIL when
native_interpret_expr gets a NULL tree.
* arith.cc (gfc_hollerith2real): Return NULL when
gfc_interpret_float fails.
* error.cc (gfc_buffered_p): Define.
* gfortran.h (gfc_buffered_p): Declare.
* intrinsic.cc: Add diagnostic.h to include list.
(do_simplify): Save errorcount and check it at finish. Report a
"Cannot simplify expression" error on a bad result if error count
doesn't change and no other errors buffered.
gcc/testsuite/
PR target/103628
* gfortran.dg/assumed_size_refs_2.f90: Check "Cannot simplify
expression" error.
* gfortran.dg/unpack_field_1.f90: Likewise.
* gfortran.dg/pr103628.f90: New.
Co-Authored-By: Tobias Burnus <tobias@codesourcery.com>
Diffstat (limited to 'gcc/fortran/error.cc')
-rw-r--r-- | gcc/fortran/error.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/error.cc b/gcc/fortran/error.cc index 05d3a0e..6cae672 100644 --- a/gcc/fortran/error.cc +++ b/gcc/fortran/error.cc @@ -49,6 +49,13 @@ static gfc_error_buffer error_buffer; static output_buffer *pp_error_buffer, *pp_warning_buffer; static int warningcount_buffered, werrorcount_buffered; +/* Return buffered_p. */ +bool +gfc_buffered_p (void) +{ + return buffered_p; +} + /* Return true if there output_buffer is empty. */ static bool |