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
This commit is contained in:
Thomas Koenig 2018-03-27 18:42:02 +00:00
parent 13a7688fb9
commit ef22816c3b
4 changed files with 24 additions and 4 deletions

View file

@ -1,3 +1,9 @@
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>

View file

@ -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);
}

View file

@ -1,3 +1,8 @@
2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/85084
* gfortran.dg/matmul_rank_1.f90: New test.
2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
Harald Anlauf <anlauf@gmx.de>

View file

@ -0,0 +1,9 @@
! { dg-do compile }
! { dg-additional-options "-ffrontend-optimize" }
! PR 85044 - used to die on allocating a negative amount of memory.
! Test case by Gerhard Steinmetz.
program p
real :: a(3,3) = 1.0
real :: b(33)
b = matmul(a, a) ! { dg-error "Incompatible ranks" }
end