Message ID | 098a8857-fcef-9506-baa4-c3645e7397ba@netcologne.de |
---|---|
State | New |
Headers | show |
Series | [fortran] Fix PR 83540 | expand |
OK - thanks for the patch. Paul On 26 December 2017 at 12:12, Thomas Koenig <tkoenig@netcologne.de> wrote: > Hello world, > > this rather self-explanatory patch makes sure we don't get an error > using reallocation on assignment for inlining matmul when > we don't have reallocation on assignment. > > Regression-tested. OK for trunk? > > Regards > > Thomas > > 2017-12-25 Thomas Koenig <tkoenig@gcc.gnu.org> > > PR fortran/83540 > * frontend-passes.c (create_var): If an array to be created > has unknown size and -fno-realloc-lhs is in effect, > return NULL. > > 2017-12-25 Thomas Koenig <tkoenig@gcc.gnu.org> > > PR fortran/83540 > * gfortran.dg/inline_matmul_20.f90: New test.
Index: frontend-passes.c =================================================================== --- frontend-passes.c (Revision 255788) +++ frontend-passes.c (Arbeitskopie) @@ -720,6 +720,11 @@ create_var (gfc_expr * e, const char *vname) if (e->expr_type == EXPR_CONSTANT || is_fe_temp (e)) return gfc_copy_expr (e); + /* Creation of an array of unknown size requires realloc on assignment. + If that is not possible, just return NULL. */ + if (flag_realloc_lhs == 0 && e->rank > 0 && e->shape == NULL) + return NULL; + ns = insert_block (); if (vname)