// { dg-do run } // Test that we clean up temporaries bound to references properly when // jumping out of their scope. int ret = 1; struct A { ~A() { ret = 0; } }; void f() { if (0) { out: return; } const A& a = A(); goto out; } int main() { f(); return ret; }