In this short program, compiled with -O2 -gdwarf-2 on powerpc-darwin with 'gcc version 4.2.0 20061012':
struct s; extern void func(struct s *); void func2(void * s_p) { struct s * const ss = s_p; func (ss); func (ss); } debug output is generated which has the variable 's_p' live until just before the second call to 'func', and has the variable 'ss' live from after the first call to 'func' through the end of the function. (The ranges of 's_p' and 'ss' overlap.) This is lame. The variables have identical values, the debug information should be able to explain their value everywhere in the function. -- Summary: inconsistent variable output Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: geoffk at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29461