diff options
author | Reid Kleckner <rnk@google.com> | 2016-11-23 18:33:54 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2016-11-23 18:33:54 +0000 |
commit | 6e38e982ec31ef0755b947cafc00b17f58a005b1 (patch) | |
tree | 6efdf13413fb1f8718647d00a8de9933a7da404e /test/PCH | |
parent | 017ae22a5cb136fd1668e5586bfef535d0e51e2f (diff) |
Add dllexport default ctor closure PCH regression test for PR31121
Follow up to r287774
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@287793 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/PCH')
-rw-r--r-- | test/PCH/dllexport-default-arg-closure.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/PCH/dllexport-default-arg-closure.cpp b/test/PCH/dllexport-default-arg-closure.cpp new file mode 100644 index 0000000000..892f1eb9bf --- /dev/null +++ b/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 |