[libcxx-commits] [libcxx] [libc++] Introduce a new attribute keyword for Clang improves compatibility with Mingw-GCC (PR #141040)
Tomohiro Kashiwada via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jun 9 04:06:15 PDT 2025
kikairoya wrote:
> > In fact, my ad-hoc patch causes doubly-exporting constructors of inner class.
>
> Hmm, in which way does it cause them to be doubly exported? Does it emit two `dllexport` attributes somehow, or does it generate two instances of the same function?
I was wrong. They are "complete object constructor" and "base object constructor" (ref: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-special-ctor-dtor ), `c++filt` shows same result for these. Each function body and export table entry is emitted exactly once.
Though, I found a new suspicious result - copy constructor and `operator=` are generated and exported automatically for outer class template but not for inner class ( of course, they are exported as expected when defined manually ).
The files used by this test are added: https://gist.github.com/kikairoya/97c6daea92b94db2d5b72fb200ddd1bd
https://github.com/llvm/llvm-project/pull/141040
More information about the libcxx-commits
mailing list