[clang] [clang] Remove hasValue() check in `RecordExprEvaluator::VisitCXXConstructExpr()` (PR #154610)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 24 20:25:15 PDT 2025
================
@@ -11045,10 +11045,6 @@ bool RecordExprEvaluator::VisitCXXConstructExpr(const CXXConstructExpr *E,
bool ZeroInit = E->requiresZeroInitialization();
if (CheckTrivialDefaultConstructor(Info, E->getExprLoc(), FD, ZeroInit)) {
- // If we've already performed zero-initialization, we're already done.
- if (Result.hasValue())
----------------
efriedma-quic wrote:
When it's working correctly, it allows skipping work zero-initializing something that's already zero-initialized, I think. But that assumes we maintain an invariant about exactly when values are absent, vs. uninitialized. We don't maintain that invariant for anonymous structs. (We probably could, but it's a little tricky to implement correctly for nested anonymous structs.)
https://github.com/llvm/llvm-project/pull/154610
More information about the cfe-commits
mailing list