(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
template/
attr-used.C
// { dg-do compile }

template<typename T> struct X {
  void g () {}
  void f () __attribute__((__used__)) {}
};

extern X<int> x; // X<int> incomplete here

template <typename T>
void Frob (T t) {
  x.g(); // X<int> completed here, X<int>::f's body marked for instantiation
}

// Make sure X<int>::f is emitted
// { dg-final { scan-assembler "_ZN1XIiE1fEv:" } }