gcc/gcc44-vta-ssa-update-former...

42 lines
1.5 KiB
Diff

for gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
PR debug/41229
* tree-ssa.c (execute_update_addresses_taken): Update debug insns.
for gcc/testsuite/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
PR debug/41229
* gfortran.dg/pr41229.f90: New.
Index: gcc/testsuite/gfortran.dg/pr41229.f90
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gcc/testsuite/gfortran.dg/pr41229.f90 2009-09-07 19:16:17.000000000 -0300
@@ -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
Index: gcc/tree-ssa.c
===================================================================
--- gcc/tree-ssa.c.orig 2009-09-07 19:15:39.000000000 -0300
+++ gcc/tree-ssa.c 2009-09-07 19:17:19.000000000 -0300
@@ -2067,7 +2067,8 @@ execute_update_addresses_taken (void)
if ((gimple_loaded_syms (stmt)
&& bitmap_intersect_p (gimple_loaded_syms (stmt), vars_updated))
|| (gimple_stored_syms (stmt)
- && bitmap_intersect_p (gimple_stored_syms (stmt), vars_updated)))
+ && bitmap_intersect_p (gimple_stored_syms (stmt), vars_updated))
+ || is_gimple_debug (stmt))
update_stmt (stmt);
}
BITMAP_FREE (not_reg_needs);