diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-06 23:55:29 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-06 23:55:29 +0000 |
commit | a829fbd0aaf9a638f80bfa3f194b7bd0b78056e1 (patch) | |
tree | 018b54568181c78fdd2b8bdfe4d27ca85060f16a /gcc/cfghooks.c | |
parent | 38bc09df24434efb8404ee8e7bedcf51ed845ffe (diff) | |
download | gcc-a829fbd0aaf9a638f80bfa3f194b7bd0b78056e1.tar.gz |
* cfghooks.c (copy_bbs): Handle a null loop_father.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193270 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfghooks.c')
-rw-r--r-- | gcc/cfghooks.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c index d54dd469cf4..39f2f93d9be 100644 --- a/gcc/cfghooks.c +++ b/gcc/cfghooks.c @@ -1258,12 +1258,15 @@ copy_bbs (basic_block *bbs, unsigned n, basic_block *new_bbs, new_bb = new_bbs[i] = duplicate_block (bb, NULL, after); after = new_bb; bb->flags |= BB_DUPLICATED; - /* Possibly set loop header. */ - if (bb->loop_father->header == bb && bb->loop_father != base) - new_bb->loop_father->header = new_bb; - /* Or latch. */ - if (bb->loop_father->latch == bb && bb->loop_father != base) - new_bb->loop_father->latch = new_bb; + if (bb->loop_father) + { + /* Possibly set loop header. */ + if (bb->loop_father->header == bb && bb->loop_father != base) + new_bb->loop_father->header = new_bb; + /* Or latch. */ + if (bb->loop_father->latch == bb && bb->loop_father != base) + new_bb->loop_father->latch = new_bb; + } } /* Set dominators. */ |