https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114704
--- Comment #3 from XChy <xxs_chy at outlook dot com> --- (In reply to Andrew Pinski from comment #1) > Confirmed. A more general testcase: > ``` > void dummy(); > > void src(int *p, int a){ > int t = *p; > if(t == a) > goto then; > else { > dummy(); > t = *p; > if(t == a) > goto then; > else > return; > } > > then: > *p = t; // *p is already a, it's dead now > } > > ``` Do you mean "*p = a" at the end?