This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/53948] [4.8 Regression] Assignment line missing for -O0 -g


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

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at redhat dot com
         AssignedTo|steven at gcc dot gnu.org   |law at gcc dot gnu.org

--- Comment #5 from Jeffrey A. Law <law at redhat dot com> 2013-02-07 20:04:00 UTC ---
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.  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 ;(


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]