summaryrefslogtreecommitdiff
path: root/gcc/loop-invariant.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-08 12:10:32 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-08 12:10:32 +0000
commit8311e9d227e0da28f63dc73acd3e10032f813ee6 (patch)
tree119bede4564d00d88fd512ff228ba9fabfae2409 /gcc/loop-invariant.c
parent1770a4b65afb87436af705fec62c9d382ef68e6f (diff)
downloadgcc-8311e9d227e0da28f63dc73acd3e10032f813ee6.tar.gz
2009-11-08 Richard Guenther <rguenther@suse.de>
PR rtl-optimization/41928 * loop-invariant.c (free_loop_data): If we didn't allocate loop data do not try to free it. * gfortran.dg/pr41928.f90: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154008 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r--gcc/loop-invariant.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index 37f88f2fcbd..baf249ba3a2 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -1564,6 +1564,8 @@ static void
free_loop_data (struct loop *loop)
{
struct loop_data *data = LOOP_DATA (loop);
+ if (!data)
+ return;
bitmap_clear (&LOOP_DATA (loop)->regs_ref);
bitmap_clear (&LOOP_DATA (loop)->regs_live);