Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
      2 
      3 template<class T> class A {
      4 public:
      5   A() {}
      6   virtual void a() {}
      7 };
      8 class B : A<int> {
      9   B();
     10 };
     11 B::B() {}
     12 
     13 template class A<long>;
     14 
     15 extern template class A<short>;
     16 template class A<short>;
     17 
     18 
     19 // CHECK: @_ZTV1B = linkonce_odr unnamed_addr constant
     20 // CHECK: @_ZTV1AIlE = weak_odr unnamed_addr constant
     21 // CHECK: @_ZTV1AIsE = weak_odr unnamed_addr constant
     22 // CHECK: @_ZTV1AIiE = linkonce_odr unnamed_addr constant
     23 
     24 template<class T> struct C {
     25   virtual void c() {}
     26 };
     27 struct D : C<int> {
     28   virtual void d();
     29 };
     30 void D::d() {}
     31 
     32 // CHECK: define {{.*}}@_ZN1CIiE1cEv(
     33