[clang] [NFC] [clang] simplify isDesignatorAtObjectEnd (PR #126658)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 10 19:11:40 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Florian Mayer (fmayer)
<details>
<summary>Changes</summary>
IsLastOrInvalidFieldDecl would always return true if `Invalid=true`, so
we know that !IsLastOrInvalidFieldDecl(...) means !Invalid.
---
Full diff: https://github.com/llvm/llvm-project/pull/126658.diff
1 Files Affected:
- (modified) clang/lib/AST/ExprConstant.cpp (+11-12)
``````````diff
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 192b679b4c9959..69179a0b88519a 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");
``````````
</details>
https://github.com/llvm/llvm-project/pull/126658
More information about the cfe-commits
mailing list