diff options
author | Richard Guenther <rguenther@suse.de> | 2009-11-08 12:10:32 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-11-08 12:10:32 +0000 |
commit | eb1494409bcbb256db054db188c386d3e3cf0b55 (patch) | |
tree | 119bede4564d00d88fd512ff228ba9fabfae2409 /gcc/loop-invariant.c | |
parent | b5fcfe893c42ec905538d0964b93a138ca245341 (diff) | |
download | gcc-eb1494409bcbb256db054db188c386d3e3cf0b55.zip gcc-eb1494409bcbb256db054db188c386d3e3cf0b55.tar.gz gcc-eb1494409bcbb256db054db188c386d3e3cf0b55.tar.bz2 |
re PR rtl-optimization/41928 (segfault at gcc/bitmap.c:297)
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.
From-SVN: r154008
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r-- | gcc/loop-invariant.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c index 37f88f2..baf249b 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); |