aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-05-09 07:42:45 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-05-09 07:42:45 +0000
commit7a27d38f4e63f2bbfebe046be2d7097d11b24e50 (patch)
treeb8a8c041c76eadbdb6ce259e32a4d7d0b648c2e2
parente6dffc988a5d7ce5b375ec96d2d1b95f775e0ec6 (diff)
downloadgcc-7a27d38f4e63f2bbfebe046be2d7097d11b24e50.zip
gcc-7a27d38f4e63f2bbfebe046be2d7097d11b24e50.tar.gz
gcc-7a27d38f4e63f2bbfebe046be2d7097d11b24e50.tar.bz2
re PR fortran/70937 (ICE: tree code ‘ssa_name’ is not supported in LTO streams)
2016-05-09 Richard Biener <rguenther@suse.de> PR fortran/70937 * trans-decl.c: Include gimplify.h for unshare_expr. (gfc_trans_vla_one_sizepos): Unshare exprs before inserting them into the IL. * gfortran.dg/pr70937.f90: New testcase. From-SVN: r236021
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/trans-decl.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr70937.f9010
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index bad524c..f683869 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2016-05-09 Richard Biener <rguenther@suse.de>
+
+ PR fortran/70937
+ * trans-decl.c: Include gimplify.h for unshare_expr.
+ (gfc_trans_vla_one_sizepos): Unshare exprs before inserting
+ them into the IL.
+
2016-05-07 Fritz Reese <fritzoreese@gmail.com>
PR fortran/56226
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index d4ea6c8..2f5e434 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -45,6 +45,7 @@ along with GCC; see the file COPYING3. If not see
/* Only for gfc_trans_code. Shouldn't need to include this. */
#include "trans-stmt.h"
#include "gomp-constants.h"
+#include "gimplify.h"
#define MAX_LABEL_VALUE 99999
@@ -3754,7 +3755,7 @@ gfc_trans_vla_one_sizepos (tree *tp, stmtblock_t *body)
var = gfc_create_var_np (TREE_TYPE (t), NULL);
gfc_add_decl_to_function (var);
- gfc_add_modify (body, var, val);
+ gfc_add_modify (body, var, unshare_expr (val));
if (TREE_CODE (t) == SAVE_EXPR)
TREE_OPERAND (t, 0) = var;
*tp = var;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 99d6e44..02bdf33 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-09 Richard Biener <rguenther@suse.de>
+
+ PR fortran/70937
+ * gfortran.dg/pr70937.f90: New testcase.
+
2016-05-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.dg/ipa/pure-const-3.c: Scan local-pure-const1 dump.
diff --git a/gcc/testsuite/gfortran.dg/pr70937.f90 b/gcc/testsuite/gfortran.dg/pr70937.f90
new file mode 100644
index 0000000..3fb17bd
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr70937.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-flto" }
+ SUBROUTINE dbcsr_test_read_args(narg, args)
+ CHARACTER(len=*), DIMENSION(:), &
+ INTENT(out) :: args
+ CHARACTER(len=80) :: line
+ DO
+ args(narg) = line
+ ENDDO
+ END SUBROUTINE dbcsr_test_read_args