summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-11-23 18:33:54 +0000
committerReid Kleckner <rnk@google.com>2016-11-23 18:33:54 +0000
commit98c80572f2ceadf45a81179d3f33c473982463e4 (patch)
tree393a3f6eaadd80b596505f4b7b5b9ad6d2238222 /clang/test
parent47eb85a0033fd21764fe100e736c3ec54d4f741f (diff)
downloadbcm5719-llvm-98c80572f2ceadf45a81179d3f33c473982463e4.tar.gz
bcm5719-llvm-98c80572f2ceadf45a81179d3f33c473982463e4.zip
Add dllexport default ctor closure PCH regression test for PR31121
Follow up to r287774 llvm-svn: 287793
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/PCH/dllexport-default-arg-closure.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/test/PCH/dllexport-default-arg-closure.cpp b/clang/test/PCH/dllexport-default-arg-closure.cpp
new file mode 100644
index 00000000000..892f1eb9bff
--- /dev/null
+++ b/clang/test/PCH/dllexport-default-arg-closure.cpp
@@ -0,0 +1,26 @@
+// Make sure we emit the MS ABI default ctor closure with PCH.
+//
+// Test this without pch.
+// RUN: %clang_cc1 -fms-extensions -triple x86_64-windows-msvc -std=c++11 -include %s -emit-llvm -o - %s | FileCheck %s
+
+// Test with pch.
+// RUN: %clang_cc1 -fms-extensions -triple x86_64-windows-msvc -std=c++11 -emit-pch -o %t %s
+// RUN: %clang_cc1 -fms-extensions -triple x86_64-windows-msvc -std=c++11 -include-pch %t -emit-llvm -o - %s | FileCheck %s
+
+#ifndef HEADER
+#define HEADER
+
+struct __declspec(dllexport) Foo {
+ enum E { E0 } e;
+ Foo(E e = E0) : e(e) {}
+};
+
+// Demangles as:
+// void Foo::`default constructor closure'(void)
+// CHECK: define weak_odr dllexport void @"\01??_FFoo@@QEAAXXZ"(%struct.Foo*{{.*}})
+// CHECK: call %struct.Foo* @"\01??0Foo@@QEAA@W4E@0@@Z"(%struct.Foo* {{.*}}, i32 0)
+
+#else
+
+
+#endif
OpenPOWER on IntegriCloud