OSDN Git Service

PR tree-optimization/49712
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Jul 2011 09:13:06 +0000 (09:13 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Jul 2011 09:13:06 +0000 (09:13 +0000)
* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.

* gcc.c-torture/execute/pr49712.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176195 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr49712.c [new file with mode: 0644]
gcc/tree-ssa-loop-im.c

index 7fb19da..2599e73 100644 (file)
@@ -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.
index 7d50bd1..88f61cc 100644 (file)
@@ -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 (file)
index 0000000..b85887b
--- /dev/null
@@ -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;
+}
index 778edd4..3a5608e 100644 (file)
@@ -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;