diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-12-08 14:37:49 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-12-08 14:37:49 +0100 |
commit | 47e1596cc1e877485483de1eca7b3eb4bd049cfb (patch) | |
tree | 20b3f0623f26e447a079ffd9681a686f56ac33d7 /gcc/tree-nested.c | |
parent | dfe1fe91dbc7f068bb3efcee40237caacc0c53ae (diff) | |
download | gcc-47e1596cc1e877485483de1eca7b3eb4bd049cfb.zip gcc-47e1596cc1e877485483de1eca7b3eb4bd049cfb.tar.gz gcc-47e1596cc1e877485483de1eca7b3eb4bd049cfb.tar.bz2 |
re PR fortran/88304 (ICE in use_pointer_in_frame, at tree-nested.c:267)
PR fortran/88304
* tree-nested.c (convert_local_reference_stmt): Handle clobbers where
lhs is not a decl normally, don't call use_pointer_in_frame on that
lhs.
* gfortran.fortran-torture/compile/pr88304-2.f90: New test.
From-SVN: r266907
Diffstat (limited to 'gcc/tree-nested.c')
-rw-r--r-- | gcc/tree-nested.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index ea54246..0ad469a 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -2324,7 +2324,8 @@ convert_local_reference_stmt (gimple_stmt_iterator *gsi, bool *handled_ops_p, if (gimple_clobber_p (stmt)) { tree lhs = gimple_assign_lhs (stmt); - if (!use_pointer_in_frame (lhs) + if (DECL_P (lhs) + && !use_pointer_in_frame (lhs) && lookup_field_for_decl (info, lhs, NO_INSERT)) { gsi_replace (gsi, gimple_build_nop (), true); |