[clang] WIP: [clang] MicrosoftCXXABI: Fix exception copy constructor LUT after loading AST (PR #114075)
Andrey Glebov via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 23 07:47:01 PST 2025
================
@@ -2316,6 +2316,20 @@ void ASTDeclReader::VisitCXXConstructorDecl(CXXConstructorDecl *D) {
}
VisitCXXMethodDecl(D);
+
+ // Microsoft CXX ABI specific:
+ // Restore the RecordToCopyCtor sidecar LUT entry so that `throw` expressions
+ // find the correct copy constructor for exceptions during codegen.
+ // There is no need to check the target info because the
+ // HasCopyConstructorForExceptionObject bit only gets set for the MS ABI.
+ if (D->isCopyConstructor()) {
+ // TODO What if this is not the same copy constructor which was chosen by
+ // LookupCopyingConstructor() in SemaExprCXX? Is there a better way?
----------------
glebov-andrey wrote:
Alright, then this is the first thing I will try, before making any other changes to the PR.
BTW, it seems your message got cut off - it ends with "I propose the following experiment:"
https://github.com/llvm/llvm-project/pull/114075
More information about the cfe-commits
mailing list