]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
read-rtl.c (copy_rtx_for_iterators): Continue applying iterators while it has any...
authorMichael Zolotukhin <michael.v.zolotukhin@intel.com>
Wed, 22 May 2013 07:48:13 +0000 (07:48 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Wed, 22 May 2013 07:48:13 +0000 (07:48 +0000)
* read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
while it has any effect.

From-SVN: r199177

gcc/ChangeLog
gcc/read-rtl.c

index c43d82034fc7565862db8ac541d0011fd11621ee..663bfb26933989ca191e447fd1444bde5eecb735 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-22  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
+
+       * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
+       while it has any effect.
+
 2013-05-21  Easwaran Raman  <eraman@google.com>
 
        PR tree-optimization/57322
index cd58b1f823815a59fbe764982fc5585a3d718b13..2b76c1b9db2d34091c3c30525b29b86864e4bc85 100644 (file)
@@ -380,7 +380,7 @@ apply_iterator_to_string (const char *string)
 static rtx
 copy_rtx_for_iterators (rtx original)
 {
-  const char *format_ptr;
+  const char *format_ptr, *p;
   int i, j;
   rtx x;
 
@@ -397,12 +397,14 @@ copy_rtx_for_iterators (rtx original)
     switch (format_ptr[i])
       {
       case 'T':
-       XTMPL (x, i) = apply_iterator_to_string (XTMPL (x, i));
+       while (XTMPL (x, i) != (p = apply_iterator_to_string (XTMPL (x, i))))
+         XTMPL (x, i) = p;
        break;
 
       case 'S':
       case 's':
-       XSTR (x, i) = apply_iterator_to_string (XSTR (x, i));
+       while (XSTR (x, i) != (p = apply_iterator_to_string (XSTR (x, i))))
+         XSTR (x, i) = p;
        break;
 
       case 'e':