33 lines · cpp
1// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s2 3template<class T> class A {4public:5 A() {}6 virtual void a() {}7};8class B : A<int> {9 B();10};11B::B() {}12 13template class A<long>;14 15extern template class A<short>;16template class A<short>;17 18 19// CHECK: @_ZTV1B = linkonce_odr {{(dso_local )?}}unnamed_addr constant20// CHECK: @_ZTV1AIlE = weak_odr {{(dso_local )?}}unnamed_addr constant21// CHECK: @_ZTV1AIsE = weak_odr {{(dso_local )?}}unnamed_addr constant22// CHECK: @_ZTV1AIiE = linkonce_odr {{(dso_local )?}}unnamed_addr constant23 24template<class T> struct C {25 virtual void c() {}26};27struct D : C<int> {28 virtual void d();29};30void D::d() {}31 32// CHECK: define {{.*}}@_ZN1CIiE1cEv(33