[clang] [NFC] [clang] simplify isDesignatorAtObjectEnd (PR #126658)
Florian Mayer via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 10 19:11:09 PST 2025
https://github.com/fmayer created https://github.com/llvm/llvm-project/pull/126658
IsLastOrInvalidFieldDecl would always return true if `Invalid=true`, so
we know that !IsLastOrInvalidFieldDecl(...) means !Invalid.
>From cc8aa7242294c5af5ae839396f02acc22b3afbb5 Mon Sep 17 00:00:00 2001
From: Florian Mayer <fmayer at google.com>
Date: Mon, 10 Feb 2025 19:10:56 -0800
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
=?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.4
---
clang/lib/AST/ExprConstant.cpp | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 192b679b4c99596..69179a0b88519a5 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -12536,10 +12536,9 @@ static const Expr *ignorePointerCastsAndParens(const Expr *E) {
static bool isDesignatorAtObjectEnd(const ASTContext &Ctx, const LValue &LVal) {
assert(!LVal.Designator.Invalid);
- auto IsLastOrInvalidFieldDecl = [&Ctx](const FieldDecl *FD, bool &Invalid) {
+ auto IsLastOrInvalidFieldDecl = [&Ctx](const FieldDecl *FD) {
const RecordDecl *Parent = FD->getParent();
- Invalid = Parent->isInvalidDecl();
- if (Invalid || Parent->isUnion())
+ if (Parent->isInvalidDecl() || Parent->isUnion())
return true;
const ASTRecordLayout &Layout = Ctx.getASTRecordLayout(Parent);
return FD->getFieldIndex() + 1 == Layout.getFieldCount();
@@ -12548,14 +12547,14 @@ static bool isDesignatorAtObjectEnd(const ASTContext &Ctx, const LValue &LVal) {
auto &Base = LVal.getLValueBase();
if (auto *ME = dyn_cast_or_null<MemberExpr>(Base.dyn_cast<const Expr *>())) {
if (auto *FD = dyn_cast<FieldDecl>(ME->getMemberDecl())) {
- bool Invalid;
- if (!IsLastOrInvalidFieldDecl(FD, Invalid))
- return Invalid;
+ if (!IsLastOrInvalidFieldDecl(FD)) {
+ return false;
+ }
} else if (auto *IFD = dyn_cast<IndirectFieldDecl>(ME->getMemberDecl())) {
for (auto *FD : IFD->chain()) {
- bool Invalid;
- if (!IsLastOrInvalidFieldDecl(cast<FieldDecl>(FD), Invalid))
- return Invalid;
+ if (!IsLastOrInvalidFieldDecl(cast<FieldDecl>(FD))) {
+ return false;
+ }
}
}
}
@@ -12591,9 +12590,9 @@ static bool isDesignatorAtObjectEnd(const ASTContext &Ctx, const LValue &LVal) {
return false;
BaseType = CT->getElementType();
} else if (auto *FD = getAsField(Entry)) {
- bool Invalid;
- if (!IsLastOrInvalidFieldDecl(FD, Invalid))
- return Invalid;
+ if (!IsLastOrInvalidFieldDecl(FD)) {
+ return false;
+ }
BaseType = FD->getType();
} else {
assert(getAsBaseClass(Entry) && "Expecting cast to a base class");
More information about the cfe-commits
mailing list