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.