diff options
author | Martin Storsjo <martin@martin.st> | 2019-04-26 19:31:51 +0000 |
---|---|---|
committer | Martin Storsjo <martin@martin.st> | 2019-04-26 19:31:51 +0000 |
commit | cde9c9e3de199301f9b3e23b8eacebcd86ffe502 (patch) | |
tree | c16e19b57071fc31c40c8a511bd7c8e46b28db8c /test/CodeGenCXX | |
parent | 3bbed5ed96fe98ec1c57a7455c8e56378c29cbd6 (diff) |
[MinGW] Always emit local typeinfo
This makes sure that code built with headers for a statically linked
libc++ also works when linking to the DLL version, when the DLL
hasn't been built with --export-all-symbols.
This matches what GCC for MinGW does for this test case.
Differential Revision: https://reviews.llvm.org/D61177
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@359345 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX')
-rw-r--r-- | test/CodeGenCXX/vtable-key-function-ios.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/test/CodeGenCXX/vtable-key-function-ios.cpp b/test/CodeGenCXX/vtable-key-function-ios.cpp index a119c780bb..ff2793ad51 100644 --- a/test/CodeGenCXX/vtable-key-function-ios.cpp +++ b/test/CodeGenCXX/vtable-key-function-ios.cpp @@ -1,7 +1,7 @@ -// RUN: %clang_cc1 %s -triple=armv7-apple-darwin -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple=armv7-apple-darwin -emit-llvm -o - | FileCheck -check-prefixes=CHECK,CHECK-UNIX %s // RUN: %clang_cc1 %s -triple=armv7-apple-darwin -emit-llvm -o - | FileCheck -check-prefix=CHECK-LATE %s -// RUN: %clang_cc1 %s -triple=x86_64-pc-windows-gnu -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-pc-windows-gnu -emit-llvm -o - | FileCheck -check-prefixes=CHECK,CHECK-MINGW %s // RUN: %clang_cc1 %s -triple=x86_64-pc-windows-gnu -emit-llvm -o - | FileCheck -check-prefix=CHECK-LATE %s // The 'a' variants ask for the vtable first. @@ -29,7 +29,8 @@ struct Test0a { // V-table should be defined externally. Test0a::Test0a() { use(typeid(Test0a)); } // CHECK: @_ZTV6Test0a = external {{(dso_local )?}}unnamed_addr constant -// CHECK: @_ZTI6Test0a = external {{(dso_local )?}}constant +// CHECK-UNIX: @_ZTI6Test0a = external {{(dso_local )?}}constant +// CHECK-MINGW: @_ZTI6Test0a = linkonce_odr {{(dso_local )?}}constant // This is not a key function. void Test0a::foo() {} @@ -48,7 +49,8 @@ void Test0b::foo() {} // V-table should be defined externally. Test0b::Test0b() { use(typeid(Test0b)); } // CHECK: @_ZTV6Test0b = external {{(dso_local )?}}unnamed_addr constant -// CHECK: @_ZTI6Test0b = external {{(dso_local )?}}constant +// CHECK-UNIX: @_ZTI6Test0b = external {{(dso_local )?}}constant +// CHECK-MINGW: @_ZTI6Test0b = linkonce_odr {{(dso_local )?}}constant /*** Test1a ******************************************************************/ |