diff options
-rw-r--r-- | clang/test/CodeGenCXX/dllexport.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/dllexport.cpp b/clang/test/CodeGenCXX/dllexport.cpp index b872548b2fb..c839242e43f 100644 --- a/clang/test/CodeGenCXX/dllexport.cpp +++ b/clang/test/CodeGenCXX/dllexport.cpp @@ -933,3 +933,17 @@ template struct __declspec(dllimport) ExplicitInstantiationDeclTemplateBase2<int USEMEMFUNC(ExplicitInstantiationDeclTemplateBase2<int>, func) // M32-DAG: define weak_odr dllexport x86_thiscallcc void @"\01?func@?$ExplicitInstantiationDeclTemplateBase2@H@@QAEXXZ" // G32-DAG: define weak_odr x86_thiscallcc void @_ZN38ExplicitInstantiationDeclTemplateBase2IiE4funcEv + +// PR26076 +struct LayerSelectionBound; +template <typename> struct Selection {}; +typedef Selection<LayerSelectionBound> LayerSelection; +struct LayerImpl; +struct __declspec(dllexport) LayerTreeImpl { + struct __declspec(dllexport) ElementLayers { + LayerImpl *main = nullptr; + }; + LayerSelection foo; +}; +// M32-DAG: define weak_odr dllexport x86_thiscallcc %"struct.LayerTreeImpl::ElementLayers"* @"\01??0ElementLayers@LayerTreeImpl@@QAE@XZ" +// M64-DAG: define weak_odr dllexport %"struct.LayerTreeImpl::ElementLayers"* @"\01??0ElementLayers@LayerTreeImpl@@QEAA@XZ" |