1 // RUN: %clang_cc1 %s -triple=x86_64-pc-windows-gnu -emit-llvm -o - | FileCheck %s 2 3 namespace std { class type_info; } 4 extern void use(const std::type_info &rtti); 5 6 struct Test1a { 7 Test1a(); 8 virtual void foo(); 9 virtual void bar(); 10 }; 11 12 // V-table needs to be defined weakly. 13 Test1a::Test1a() { use(typeid(Test1a)); } 14 // This defines the key function. 15 inline void Test1a::foo() {} 16 17 // CHECK: $_ZTV6Test1a = comdat any 18 // CHECK: $_ZTS6Test1a = comdat any 19 // CHECK: $_ZTI6Test1a = comdat any 20 // CHECK-NOT: $_ZTS6Test1a.1 = comdat any 21 // CHECK-NOT: $_ZTI6Test1a.1 = comdat any 22 23 // CHECK: @_ZTV6Test1a = linkonce_odr unnamed_addr constant {{.*}} ({ i8*, i8* }* @_ZTI6Test1a to i8*) 24 // CHECK: @_ZTS6Test1a = linkonce_odr constant 25 // CHECK: @_ZTI6Test1a = linkonce_odr constant {{.*}} [8 x i8]* @_ZTS6Test1a 26