diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-07-12 11:13:06 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-07-12 11:13:06 +0200 |
commit | d5fed62d7296fd18f8cd55d95cafef1de7f62816 (patch) | |
tree | b38a34e0535ef0d04b64b7f12e78c1e9ad33f7bc /gcc | |
parent | 1be4e803d26d7421c16708dcd5b3628b93adfcf5 (diff) | |
download | gcc-d5fed62d7296fd18f8cd55d95cafef1de7f62816.zip gcc-d5fed62d7296fd18f8cd55d95cafef1de7f62816.tar.gz gcc-d5fed62d7296fd18f8cd55d95cafef1de7f62816.tar.bz2 |
re PR tree-optimization/49712 (internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048)
PR tree-optimization/49712
* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
* gcc.c-torture/execute/pr49712.c: New test.
From-SVN: r176195
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr49712.c | 28 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-im.c | 1 |
4 files changed, 39 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7fb19da..2599e73 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-07-12 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/49712 + * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF. + 2011-07-11 Bernd Schmidt <bernds@codesourcery.com> * genautomata.c (add_arc): Return void. All callers changed. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7d50bd1..88f61cc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-07-12 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/49712 + * gcc.c-torture/execute/pr49712.c: New test. + 2011-07-11 Jason Merrill <jason@redhat.com> PR c++/44609 diff --git a/gcc/testsuite/gcc.c-torture/execute/pr49712.c b/gcc/testsuite/gcc.c-torture/execute/pr49712.c new file mode 100644 index 0000000..b85887b --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr49712.c @@ -0,0 +1,28 @@ +/* PR tree-optimization/49712 */ + +int a[2], b, c, d, e; + +void +foo (int x, int y) +{ +} + +int +bar (void) +{ + int i; + for (; d <= 0; d = 1) + for (i = 0; i < 4; i++) + for (e = 0; e; e = 1) + ; + return 0; +} + +int +main () +{ + for (b = 0; b < 2; b++) + while (c) + foo (a[b] = 0, bar ()); + return 0; +} diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index 778edd4..3a5608e 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -1982,6 +1982,7 @@ gen_lsm_tmp_name (tree ref) switch (TREE_CODE (ref)) { case MEM_REF: + case TARGET_MEM_REF: gen_lsm_tmp_name (TREE_OPERAND (ref, 0)); lsm_tmp_name_add ("_"); break; |