// { dg-do run } // { dg-options "-O1" } // Origin: Mark Mitchell int result; struct S { S (); S (const S&); ~S (); int i; double d[18]; }; S* s; S::S () { s = this; } S::~S () { if (s != this) result = 1; } inline S f () { return S (); } int main () { f (); return result; }