eiytoq wrote:

Thank you for the review. You are right that my previous use of `ND == 
Structor` in this path was incorrect, and I have removed it.

The primary fix here is to construct a valid `GlobalDecl` (with an explicit 
kind) to avoid assertion failures in `GlobalDecl::Init`.

For this scope-encoding context, explicitly using 
`Ctor_Complete`/`Dtor_Complete` matches the [Itanium ABI 
rule](https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-scope):

> _For entities in constructors and destructors, the mangling of the complete 
> object constructor or destructor is used as the base function name._

Ctor/dtor token emission itself is still handled in `mangleUnqualifiedName`, so 
top-level ctor/dtor behavior is unchanged.


https://github.com/llvm/llvm-project/pull/181068
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to