[clang] [Clang] Ensure child classes export inherited constructors from base classes (PR #182706)

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 23 05:31:01 PDT 2026


================
@@ -3935,6 +3935,11 @@ def warn_dllexport_on_decl_ignored : Warning<
   InGroup<IgnoredAttributes>;
 def note_dllexport_on_decl : Note<
   "'dllexport' attribute on the declaration is ignored">;
+def warn_dllexport_inherited_ctor_unsupported : Warning<
+  "exporting inherited constructor is not yet supported; "
+  "'dllexport' ignored on inherited constructor with "
+  "%select{variadic arguments|callee-cleanup parameters}0">,
+  InGroup<IgnoredAttributes>;
----------------
zmodem wrote:

I meant it's not really clear what the developer should do here. Not use callee-cleanup parameters (they may not know what that is), not export the class? I suppose the realistic option is don't use inheriting constructors.

I suppose warning is better than a link-time failure though, but making it a separate group would be nice.

It would be cool if we could fix this though. I wonder if we have more gaps like this (missing thunk capabilities) and if the improved tail call support over the years has made it possible to fill those gaps.

https://github.com/llvm/llvm-project/pull/182706


More information about the cfe-commits mailing list