diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2018-03-27 18:42:02 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2018-03-27 18:42:02 +0000 |
commit | ef22816c3b3f580addc60df340abda46cc6ba01c (patch) | |
tree | 46e1c9ecdbcac8b4255e0a12c94e413e8d0cef31 /gcc/fortran | |
parent | 13a7688fb902adb314679a2ffe64d80186632224 (diff) | |
download | gcc-ef22816c3b3f580addc60df340abda46cc6ba01c.zip gcc-ef22816c3b3f580addc60df340abda46cc6ba01c.tar.gz gcc-ef22816c3b3f580addc60df340abda46cc6ba01c.tar.bz2 |
re PR fortran/85084 (ICE: out of memory allocating 18446744073709551600 bytes ...)
2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/85084
* frontend-passes.c (gfc_run_passes): Do not run front-end
optimizations if a previous error occurred.
2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/85084
* gfortran.dg/matmul_rank_1.f90: New test.
From-SVN: r258900
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/frontend-passes.c | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index fb0f04e..b88b27b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,4 +1,10 @@ 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/85084 + * frontend-passes.c (gfc_run_passes): Do not run front-end + optimizations if a previous error occurred. + +2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> PR fortran/85083 diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c index 1ffd27d..6888224 100644 --- a/gcc/fortran/frontend-passes.c +++ b/gcc/fortran/frontend-passes.c @@ -156,6 +156,10 @@ gfc_run_passes (gfc_namespace *ns) check_locus (ns); #endif + gfc_get_errors (&w, &e); + if (e > 0) + return; + if (flag_frontend_optimize || flag_frontend_loop_interchange) optimize_namespace (ns); @@ -168,10 +172,6 @@ gfc_run_passes (gfc_namespace *ns) expr_array.release (); } - gfc_get_errors (&w, &e); - if (e > 0) - return; - if (flag_realloc_lhs) realloc_strings (ns); } |