llvm-project/clang/test/CodeGenCXX/implicit-instantiation-1.cpp
Douglas Gregor 77b50e1126 Implement implicit instantiation of the member functions of a class template
specialization. At present, all implicit instantiations occur at the
end of the translation unit.

llvm-svn: 73915
2009-06-22 23:06:13 +00:00

30 lines
511 B
C++

// RUN: clang-cc -emit-llvm %s -o %t &&
template<typename T>
struct X {
void f(T) { }
void f(char) { }
void g(T) { }
void h(T) { }
};
void foo(X<int> &xi, X<float> *xfp, int i, float f) {
// RUN: grep "linkonce_odr.*_ZN1XIiE1fEi" %t | count 1 &&
xi.f(i);
// RUN: grep "linkonce_odr.*_ZN1XIiE1gEi" %t | count 1 &&
xi.g(f);
// RUN: grep "linkonce_odr.*_ZN1XIfE1fEf" %t | count 1 &&
xfp->f(f);
// RUN: grep "linkonce_odr.*_ZN1XIfE1hEf" %t | count 0 &&
// RUN: true
}