diff options
Diffstat (limited to 'gcc/read-rtl.c')
-rw-r--r-- | gcc/read-rtl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c index cd58b1f..2b76c1b 100644 --- a/gcc/read-rtl.c +++ b/gcc/read-rtl.c @@ -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': |