xref: /llvm-project/clang/test/CodeGenCXX/dllexport-ctor-closure-nested.cpp (revision e42ce422a97876e5ecd1c845b12ec65f96f8a293)
1 // RUN: %clang_cc1 -triple i686-windows-msvc -emit-llvm -std=c++14 \
2 // RUN:    -fno-threadsafe-statics -fms-extensions -O1 -mconstructor-aliases \
3 // RUN:    -disable-llvm-passes -o - %s -w -fms-compatibility-version=19.00 | \
4 // RUN:    FileCheck %s
5 
6 struct HasDtor {
7   ~HasDtor();
8   int o;
9 };
10 struct HasImplicitDtor1 {
11   HasDtor o;
12 };
13 struct __declspec(dllexport) CtorClosureOuter {
14   struct __declspec(dllexport) CtorClosureInner {
CtorClosureInnerCtorClosureOuter::CtorClosureInner15     CtorClosureInner(const HasImplicitDtor1 &v = {}) {}
16   };
17 };
18 
19 // CHECK-LABEL: $"??1HasImplicitDtor1@@QAE@XZ" = comdat any
20 // CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FCtorClosureInner@CtorClosureOuter@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
21