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?

Reply via email to