36 lines
338 B
C
36 lines
338 B
C
// { dg-do run }
|
|
// Origin: Mark Mitchell <mark@codesourcery.com>
|
|
|
|
extern "C" void abort ();
|
|
|
|
int j;
|
|
|
|
struct S {
|
|
S () { ++j; }
|
|
S (const S&) { ++j; }
|
|
~S () {
|
|
if (--j < 0)
|
|
abort ();
|
|
}
|
|
};
|
|
|
|
struct T {
|
|
void g (S) {
|
|
}
|
|
};
|
|
|
|
struct U {
|
|
int i;
|
|
S s;
|
|
};
|
|
|
|
U u;
|
|
|
|
U f () { return u; }
|
|
|
|
int main ()
|
|
{
|
|
T t;
|
|
t.g (f ().s);
|
|
}
|