// { dg-do compile } template struct X { void g () {} void f () __attribute__((__used__)) {} }; extern X x; // X incomplete here template void Frob (T t) { x.g(); // X completed here, X::f's body marked for instantiation } // Make sure X::f is emitted // { dg-final { scan-assembler "_ZN1XIiE1fEv:" } }