[Bug debug/46724] [4.6 Regression] Wrong debug info: Invalid variable location
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 2 12:11:00 GMT 2010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46724
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2010.12.02 12:11:48
CC| |aoliva at gcc dot gnu.org,
| |jakub at gcc dot gnu.org
Ever Confirmed|0 |1
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2010-12-02 12:11:48 UTC ---
I guess one option would be:
1) allow DECL_DEBUG_EXPR even on RESULT_DECL (i.e. not use VAR_DECL_CHECK
there)
2) when creating function_result_decl in assign_parms_augmented_arg_list,
either don't mark that artificial PARM_DECL with DECL_IGNORED_P but
DECL_NAMELESS and put it into DECL_ARGUMENTS (but then it might confuse
debuggers), or create a separate artificial DECL_NAMELESS DECL_BY_REFERENCE
variable which will be put into outermost BLOCK.
3) in assign_parms, after assign_parm_setup_reg initializes it, we could
emit a DEBUG_INSN for this artificial variable, equating it to the
artificial
PARM_DECL's DECL_RTL
4) and set DECL_DEBUG_EXPR of the RESULT_DECL to this artificial VAR_DECL
The DECL_BY_REFERENCE thingie is there because var-tracking doesn't VALUE track
aggregates, so we just want to track its address.
Alex, what do you think about this?
More information about the Gcc-bugs
mailing list