Take the following code: int f(int); int g(void) { int i; int *iptr = &i; int **ipp = &iptr; **ipp = 1; f(i); return **ipp; } ---------- Here we consider i being call clobber because we lose the fact that iptr is addressable but we don't look to see if its address escapes at all (which in this case it does not).
-- Summary: Address taken and addressable variables and call clobber Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24694