http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53948



--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-08 
08:28:13 UTC ---

(In reply to comment #5)

> So, the real problem here is that replacing

> 

> VAR_OR_FUNCTION_DECL_P && ! DECL_ARTIFICAL

> 

> with REG_USERVAR_P

> 

> is not the same.  In particular the former is _false_ for parameters and the

> latter is true.  c#3 is totally wrong, parameters are marked with

> REG_USERVAR_P.

> 

> The real way to get the prior behaviour without reverting the patch is to

> either explicitly mark parameters so we can check for them in this one hunk of

> code.  Or to create a helper function in a suitable location that can map from

> a reg to its decl, then check if it's a parameter.



I thought this is what REG_EXPR provides ...



  Given that flags in the

> main rtl structures are generally scarce, I think the latter is a better

> solution given how rarely we need to make this distinction.

> 

> It's unfortunate that this P1 regression was left languishing, half analyzed 
> in

> our tree for 6+ months ;(

Reply via email to