aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/frontend-passes.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr71204.f9017
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 704c1f1..d32c7d5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/71204
+ * frontend-passes.c (realloc_string_callback): Clear inserted_block
+ and changed_statement before calling create_var.
+
2016-05-15 Harald Anlauf <anlauf@gmx.de>
PR fortran/69603
diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c
index 9d724de..37c42bb 100644
--- a/gcc/fortran/frontend-passes.c
+++ b/gcc/fortran/frontend-passes.c
@@ -174,8 +174,10 @@ realloc_string_callback (gfc_code **c, int *walk_subtrees ATTRIBUTE_UNUSED,
if (!gfc_check_dependency (expr1, expr2, true))
return 0;
-
+
current_code = c;
+ inserted_block = NULL;
+ changed_statement = NULL;
n = create_var (expr2, "trim");
co->expr2 = n;
return 0;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 919c124..d5122e8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/71204
+ * gfortran.dg/pr71204.f90: New test.
+
2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
* gcc.target/nvptx/sincos.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/pr71204.f90 b/gcc/testsuite/gfortran.dg/pr71204.f90
new file mode 100644
index 0000000..1d1ee5c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr71204.f90
@@ -0,0 +1,17 @@
+! PR fortran/71204
+! { dg-do compile }
+! { dg-options "-O0" }
+
+module pr71204
+ character(10), allocatable :: z(:)
+end module
+
+subroutine s1
+ use pr71204
+ z(2) = z(1)
+end
+
+subroutine s2
+ use pr71204
+ z(2) = z(1)
+end