1/* { dg-do run } */ 2/* { dg-options "-O2" } */ 3 4/* The tail call optimization would inapproriately tail call the 5 destructors due to not recognizing a call clobbered variable */ 6namespace std 7{ 8 class locale 9 { 10 public: 11 locale(); 12 ~locale(); 13 }; 14} 15 16struct B 17{ 18 std::locale _M_buf_locale; 19 virtual ~B() {} 20}; 21 22struct C : public B 23{ 24 char *s; 25}; 26 27void foo () 28{ 29 C c; 30} 31 32int main() 33{ 34 foo (); 35 return 0; 36} 37 38