hans marked an inline comment as done. hans added inline comments.
================ Comment at: clang/lib/Sema/SemaDeclCXX.cpp:11545 + for (CXXMethodDecl *M : WorkList) { + DefineImplicitSpecialMember(*this, M, M->getLocation()); + ActOnFinishInlineFunctionDef(M); ---------------- rnk wrote: > Do we need to do this until fixpoint? Suppose a dllexported implicit special > member triggers a template instantiation, and the template has a dllexported > defaulted special member, something like: > ``` > struct Bar { Bar(); }; > template <typename T> struct Foo { __declspec(dllexport) Foo() = default; Bar > obj; }; > struct Baz { > ... not sure how to trigger instantiation > }; > ``` I think that should work, and that's why the function is written to be re-entrant by having a local worklist. If it triggers a template instantiation, ActOnFinishCXXNonNestedClass should get called for the newly instantiated class. But I'm also not sure how to write a test case that would trigger it. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65511/new/ https://reviews.llvm.org/D65511 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits