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

             Bug #: 54218
           Summary: Debug info for function parameters is incorrect when
                    compiled with -O0
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: senthil_kumar.selva...@atmel.com


Created attachment 27980
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27980
Failing dejagnu test case

When compiling a function, like below, with no optimizations (-O0), on a x86_64
target (also occurs for atleast one other target (avr))

void func(int p)
{
    p = 0; 
    p = 32;
}

wrong debug information is emitted for the function parameter (p), that cause
the debugger to keep showing the value of the actual argument, even after p is
overwritten. A failing dejagnu test is attached.

Based on a preliminary analysis, the actual problem seems to be that stack
space for a function parameter (that is not used??) is allocated twice when
gimple_expand_cfg runs - once when expand_used_vars runs, and later when
assign_parm_setup_stack runs. expand_used_vars allocates stack space despite
the check for a default definition being present in the partition, because the
function parameter node (which I guess should be the default definition) is not
present when iterating over num_ssa_names.

Reply via email to