From 91642126f3ad04c2a1a11af82765a652bcba110c Mon Sep 17 00:00:00 2001
From: Alexandre Oliva <aoliva@redhat.com>
Date: Tue, 8 Sep 2009 17:42:11 +0000
Subject: [PATCH] re PR debug/41229 (VTA: internal compiler error: verify_ssa
 failed)

gcc/ChangeLog:
PR debug/41229
PR debug/41291
PR debug/41300
* tree-ssa.c (execute_update_addresses_taken): Update debug insns.
gcc/testsuite/ChangeLog:
PR debug/41229
PR debug/41291
PR debug/41300
* gfortran.dg/pr41229.f90: New.

From-SVN: r151521
---
 gcc/ChangeLog                         |  7 +++++++
 gcc/testsuite/ChangeLog               |  7 +++++++
 gcc/testsuite/gfortran.dg/pr41229.f90 | 10 ++++++++++
 gcc/tree-ssa.c                        |  3 ++-
 4 files changed, 26 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gfortran.dg/pr41229.f90

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4d18f170e573..cc86721d5419 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR debug/41229
+	PR debug/41291
+	PR debug/41300
+	* tree-ssa.c (execute_update_addresses_taken): Update debug insns.
+
 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
 
 	* tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 66b454d6e8de..e9d64461b80c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR debug/41229
+	PR debug/41291
+	PR debug/41300
+	* gfortran.dg/pr41229.f90: New.
+
 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
 
 	PR debug/41232
diff --git a/gcc/testsuite/gfortran.dg/pr41229.f90 b/gcc/testsuite/gfortran.dg/pr41229.f90
new file mode 100644
index 000000000000..9f6e566fc9b4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr41229.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-O2 -g" }
+SUBROUTINE cp_fm_triangular_multiply()
+    INTEGER, PARAMETER :: dp=KIND(0.0D0)
+    REAL(dp), ALLOCATABLE, DIMENSION(:)      :: tau, work
+    REAL(KIND=dp), DIMENSION(:, :), POINTER  :: a
+    ndim = SIZE(a,2)
+    ALLOCATE(tau(ndim),STAT=istat)
+    ALLOCATE(work(2*ndim),STAT=istat)
+END SUBROUTINE
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index b5b6afe15e6c..9015d19c189e 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -1963,7 +1963,8 @@ execute_update_addresses_taken (bool do_optimize)
 	    {
 	      gimple stmt = gsi_stmt (gsi);
 
-	      if (gimple_references_memory_p (stmt))
+	      if (gimple_references_memory_p (stmt)
+		  || is_gimple_debug (stmt))
 		update_stmt (stmt);
 	    }
 
-- 
GitLab