[clang] [C++20][Modules] Fix false compilation error with constexpr (PR #143168)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Sun Jun 8 18:55:05 PDT 2025


================
@@ -6781,7 +6781,7 @@ static bool HandleConstructorCall(const Expr *E, const LValue &This,
       // and make sure we've initialized every step along it.
       auto IndirectFieldChain = IFD->chain();
       for (auto *C : IndirectFieldChain) {
-        FD = cast<FieldDecl>(C);
+        FD = cast<FieldDecl>(C)->getCanonicalDecl();
----------------
mizvekov wrote:

Instead of this change, this should just do `!declaresSameEntity(Value->getUnionField(), FD)  instead of `Value->getUnionField() != FD` a few lines below (outside of GitHub context).

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


More information about the cfe-commits mailing list