------- Comment #4 from rguenth at gcc dot gnu dot org 2010-02-05 13:25 ------- (In reply to comment #1) > In the .expand dump there is already something funny about the code generated > for the bit field expressions. > > For example the code generated for this: > D.1966_8 = D.1965_7 & 1; > if (D.1966_8 != 0) > > TER will perform the forward substitution: > D.1966_8 replace with --> D.1966_8 = D.1965_7 & 1;
Note that this dump is misleading. The expression is only _marked_ for possible forwarding. It is the resposibility of the individual expanders to do the expression lookup and in-place expansion. And of course forwarded statements are still regularly expanded anyway (well, to dead code) - that's probably what you see. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |matz at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42972