/* { dg-do run } */ /* { dg-options "-O2" } */ /* The tail call optimization would inapproriately tail call the destructors due to not recognizing a call clobbered variable */ namespace std { class locale { public: locale(); ~locale(); }; } struct B { std::locale _M_buf_locale; virtual ~B() {} }; struct C : public B { char *s; }; void foo () { C c; } int main() { foo (); return 0; }