[Patch, PR 57780] Waste work in subst_dup()
pchang9@cs.wisc.edu
pchang9@cs.wisc.edu
Tue Jul 23 01:55:00 GMT 2013
Hi,
The problem appears in revision 201034 in version 4.9. I attached a
one-line patch that fixes it. I also reported this problem
at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57780
Bootstrap and regression-tested on x86_64-linux.
In method "subst_dup()" in gensupport.c, the loop on line 2181
should not be executed when "code" equals to "MATCH_DUP" or "MATCH_OP_DUP".
2013-07-22 Chang <pchang9@cs.wisc.edu>
* gensupport.c (subst_dup): Avoid loop if code is not
MATCH_DUP nor MATCH_OP_DUP.
Index: gcc/gensupport.c
===================================================================
--- gcc/gensupport.c (revision 201034)
+++ gcc/gensupport.c (working copy)
@@ -2178,8 +2178,8 @@
if (XVEC (pattern, i) == NULL)
break;
case 'E':
- for (j = XVECLEN (pattern, i) - 1; j >= 0; --j)
- if (code != MATCH_DUP && code != MATCH_OP_DUP)
+ if (code != MATCH_DUP && code != MATCH_OP_DUP)
+ for (j = XVECLEN (pattern, i) - 1; j >= 0; --j)
XVECEXP (pattern, i, j) = subst_dup (XVECEXP (pattern, i, j),
n_alt, n_subst_alt);
break;
-Chang
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr57780_patch.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130723/1040574a/attachment.ksh>
More information about the Gcc-patches
mailing list