summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/external-linkage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGenCXX/external-linkage.cpp')
-rw-r--r--clang/test/CodeGenCXX/external-linkage.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/external-linkage.cpp b/clang/test/CodeGenCXX/external-linkage.cpp
new file mode 100644
index 00000000000..00657325041
--- /dev/null
+++ b/clang/test/CodeGenCXX/external-linkage.cpp
@@ -0,0 +1,17 @@
+// RUN: %clang_cc1 -triple i686-windows-msvc -fno-rtti -fno-threadsafe-statics -fms-extensions -fms-compatibility-version=18.00 -emit-llvm -std=c++1y -O1 -disable-llvm-passes -o - %s -DMSABI -w | FileCheck --check-prefix=MO1 --check-prefix=MO2 %s
+
+// RUN: %clang_cc1 -triple i686-windows-msvc -fno-rtti -fno-threadsafe-statics -fms-extensions -fms-compatibility-version=18.00 -emit-llvm -std=c++1y -o - %s -DMSABI -w | FileCheck --check-prefix=MO3 --check-prefix=MO4 %s
+
+// MO1-DAG:@"\01??_8B@@7B@" = available_externally dllimport unnamed_addr constant [2 x i32] [i32 0, i32 4]
+// MO2-DAG: define available_externally dllimport x86_thiscallcc %struct.B* @"\01??0B@@QAE@XZ"
+
+struct __declspec(dllimport) A {
+ virtual ~A();
+};
+struct __declspec(dllimport) B : virtual A {
+ virtual ~B();
+};
+void f() { B b; }
+
+// MO3-DAG: declare dllimport x86_thiscallcc %struct.B* @"\01??0B@@QAE@XZ"
+// MO4-DAG: declare dllimport x86_thiscallcc void @"\01??_DB@@QAEXXZ"
OpenPOWER on IntegriCloud