// { dg-do assemble } extern void byebye (); template struct A { T1 t1; T2 t2; A() { t1 = 0; t2 = 0; } ~A() { byebye(); } }; template int f (A a) { return a.t1; } extern A aa; int foop () { return f(aa); }