A function ends with: pointer->field = callSomething();
(where pointer is obtained via an argument (a pointer to struct) passed to the function). At -O1 and above, if -foptimize-sibling-calls is on, the call is converted to a jump, losing the assignment. -- Summary: -foptimize-sibling-calls drops assignment from tail call Product: gcc Version: 3.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: john at iastate dot edu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40368