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

Dmitry Polukhin via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 9 02:56:59 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();
----------------
dmpolukhin 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).

Done, it is basically the same getCanonicalDecl but better for explaining the intent.

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


More information about the cfe-commits mailing list