[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / CodeGenCXX / vtable-key-function.cpp
blobbf2e6798d2149feea04a1c020db0ddf6ea40bd68
1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
2 // PR5697
3 namespace PR5697 {
4 struct A {
5 virtual void f() { }
6 A();
7 A(int);
8 };
10 // A does not have a key function, so the first constructor we emit should
11 // cause the vtable to be defined (without assertions.)
12 // CHECK: @_ZTVN6PR56971AE = linkonce_odr unnamed_addr constant
13 A::A() { }
14 A::A(int) { }
17 // Make sure that we don't assert when building the vtable for a class
18 // template specialization or explicit instantiation with a key
19 // function.
20 template<typename T>
21 struct Base {
22 virtual ~Base();
25 template<typename T>
26 struct Derived : public Base<T> { };
28 template<>
29 struct Derived<char> : public Base<char> {
30 virtual void anchor();
33 void Derived<char>::anchor() { }