vtable-linkage.cpp revision 152d4dce59a123b9a103b3087dc3be7f0b71033e
1// RUN: clang-cc %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
2
3namespace {
4  struct A {
5    virtual void f() { }
6  };
7}
8
9void f() { A b; }
10
11struct B {
12  B();
13  virtual void f();
14};
15
16B::B() { }
17
18// B has a key function that is not defined in this translation unit so its vtable
19// has external linkage.
20// CHECK: @_ZTV1B = external constant
21
22// The A vtable should have internal linkage since it is inside an anonymous
23// namespace.
24// CHECK: @_ZTVN12_GLOBAL__N_11AE = internal constant
25