Author: Timm Bäder Date: 2023-12-19T09:46:06+01:00 New Revision: 42e5214a9b6f1bc2fbed283f7adb30f733b5a351
URL: https://github.com/llvm/llvm-project/commit/42e5214a9b6f1bc2fbed283f7adb30f733b5a351 DIFF: https://github.com/llvm/llvm-project/commit/42e5214a9b6f1bc2fbed283f7adb30f733b5a351.diff LOG: [clang][Sema][NFC] Clean up ShouldDiagnoseUnusedDecl Const qualify a few locals, merge two if statements and use dyn_cast_if_present instead of _or_null. Added: Modified: clang/lib/Sema/SemaDecl.cpp Removed: ################################################################################ diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 7dde037baccfe7..d1a26fe1218432 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2005,12 +2005,12 @@ static bool ShouldDiagnoseUnusedDecl(const LangOptions &LangOpts, if (D->isInvalidDecl()) return false; - if (auto *DD = dyn_cast<DecompositionDecl>(D)) { + if (const auto *DD = dyn_cast<DecompositionDecl>(D)) { // For a decomposition declaration, warn if none of the bindings are // referenced, instead of if the variable itself is referenced (which // it is, by the bindings' expressions). bool IsAllPlaceholders = true; - for (auto *BD : DD->bindings()) { + for (const auto *BD : DD->bindings()) { if (BD->isReferenced()) return false; IsAllPlaceholders = IsAllPlaceholders && BD->isPlaceholderVar(LangOpts); @@ -2054,7 +2054,7 @@ static bool ShouldDiagnoseUnusedDecl(const LangOptions &LangOpts, if (const VarDecl *VD = dyn_cast<VarDecl>(D)) { const Expr *Init = VD->getInit(); - if (const auto *Cleanups = dyn_cast_or_null<ExprWithCleanups>(Init)) + if (const auto *Cleanups = dyn_cast_if_present<ExprWithCleanups>(Init)) Init = Cleanups->getSubExpr(); const auto *Ty = VD->getType().getTypePtr(); @@ -2068,11 +2068,10 @@ static bool ShouldDiagnoseUnusedDecl(const LangOptions &LangOpts, // Warn for reference variables whose initializtion performs lifetime // extension. - if (const auto *MTE = dyn_cast_or_null<MaterializeTemporaryExpr>(Init)) { - if (MTE->getExtendingDecl()) { - Ty = VD->getType().getNonReferenceType().getTypePtr(); - Init = MTE->getSubExpr()->IgnoreImplicitAsWritten(); - } + if (const auto *MTE = dyn_cast_if_present<MaterializeTemporaryExpr>(Init); + MTE && MTE->getExtendingDecl()) { + Ty = VD->getType().getNonReferenceType().getTypePtr(); + Init = MTE->getSubExpr()->IgnoreImplicitAsWritten(); } // If we failed to complete the type for some reason, or if the type is @@ -2089,15 +2088,14 @@ static bool ShouldDiagnoseUnusedDecl(const LangOptions &LangOpts, if (Tag->hasAttr<UnusedAttr>()) return false; - if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(Tag)) { + if (const auto *RD = dyn_cast<CXXRecordDecl>(Tag)) { if (!RD->hasTrivialDestructor() && !RD->hasAttr<WarnUnusedAttr>()) return false; if (Init) { - const CXXConstructExpr *Construct = - dyn_cast<CXXConstructExpr>(Init); + const auto *Construct = dyn_cast<CXXConstructExpr>(Init); if (Construct && !Construct->isElidable()) { - CXXConstructorDecl *CD = Construct->getConstructor(); + const CXXConstructorDecl *CD = Construct->getConstructor(); if (!CD->isTrivial() && !RD->hasAttr<WarnUnusedAttr>() && (VD->getInit()->isValueDependent() || !VD->evaluateValue())) return false; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits