https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113767
Bug ID: 113767 Summary: Missing Destructor Call with goto and return value Product: gcc Version: 13.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: joerg.rich...@pdv-fs.de Target Milestone: --- #include <cstdio> struct S { S() { printf( "Cons\n" ); } ~S() { printf( "Dest\n" ); } }; S func() { bool first = true; restart: S ss; if( first ) { first = false; goto restart; } return ss; } int main() { func(); } Output: Cons Cons Dest Expected Output: Cons Dest Cons Dest https://godbolt.org/z/9n6nnv18P Seems to be fixed in trunk but not on any released branch. Can the fix be integrated to the released branches?