From e3b557809604d036af6e00c60f012c2025b59a5e Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 11 Feb 2023 13:38:04 +0100 Subject: Vendor import of llvm-project main llvmorg-16-init-18548-gb0daacf58f41, the last commit before the upstream release/17.x branch was created. --- clang/lib/Analysis/RetainSummaryManager.cpp | 39 +++++++++++++++-------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'clang/lib/Analysis/RetainSummaryManager.cpp') diff --git a/clang/lib/Analysis/RetainSummaryManager.cpp b/clang/lib/Analysis/RetainSummaryManager.cpp index 9098cf370d4f..468e94b23c3a 100644 --- a/clang/lib/Analysis/RetainSummaryManager.cpp +++ b/clang/lib/Analysis/RetainSummaryManager.cpp @@ -19,6 +19,7 @@ #include "clang/AST/DeclObjC.h" #include "clang/AST/ParentMap.h" #include "clang/ASTMatchers/ASTMatchFinder.h" +#include using namespace clang; using namespace ento; @@ -32,7 +33,7 @@ constexpr static bool isOneOf() { /// rest of varargs. template constexpr static bool isOneOf() { - return std::is_same::value || isOneOf(); + return std::is_same_v || isOneOf(); } namespace { @@ -65,13 +66,13 @@ struct GeneralizedConsumedAttr { } template -Optional RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D, - QualType QT) { +std::optional RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D, + QualType QT) { ObjKind K; if (isOneOf()) { if (!TrackObjCAndCFObjects) - return None; + return std::nullopt; K = ObjKind::CF; } else if (isOneOf RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D, NSReturnsNotRetainedAttr, NSConsumesSelfAttr>()) { if (!TrackObjCAndCFObjects) - return None; + return std::nullopt; if (isOneOf() && !cocoa::isCocoaObjectRef(QT)) - return None; + return std::nullopt; K = ObjKind::ObjC; } else if (isOneOf()) { if (!TrackOSObjects) - return None; + return std::nullopt; K = ObjKind::OS; } else if (isOneOf RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D, } if (D->hasAttr()) return K; - return None; + return std::nullopt; } template -Optional RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D, - QualType QT) { +std::optional RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D, + QualType QT) { if (auto Out = hasAnyEnabledAttrOf(D, QT)) return Out; return hasAnyEnabledAttrOf(D, QT); @@ -718,13 +719,13 @@ bool RetainSummaryManager::isTrustedReferenceCountImplementation( return hasRCAnnotation(FD, "rc_ownership_trusted_implementation"); } -Optional +std::optional RetainSummaryManager::canEval(const CallExpr *CE, const FunctionDecl *FD, bool &hasTrustedImplementationAnnotation) { IdentifierInfo *II = FD->getIdentifier(); if (!II) - return None; + return std::nullopt; StringRef FName = II->getName(); FName = FName.substr(FName.find_first_not_of('_')); @@ -741,7 +742,7 @@ RetainSummaryManager::canEval(const CallExpr *CE, const FunctionDecl *FD, FName == "CMBufferQueueDequeueIfDataReadyAndRetain") { // Part of: . // These are not retain. They just return something and retain it. - return None; + return std::nullopt; } if (CE->getNumArgs() == 1 && (cocoa::isRefType(ResultTy, "CF", FName) || @@ -781,7 +782,7 @@ RetainSummaryManager::canEval(const CallExpr *CE, const FunctionDecl *FD, return BehaviorSummary::NoOp; } - return None; + return std::nullopt; } const RetainSummary * @@ -864,7 +865,7 @@ RetainSummaryManager::getCFSummaryGetRule(const FunctionDecl *FD) { // Summary creation for Selectors. //===----------------------------------------------------------------------===// -Optional +std::optional RetainSummaryManager::getRetEffectFromAnnotations(QualType RetTy, const Decl *D) { if (hasAnyEnabledAttrOf(D, RetTy)) @@ -885,14 +886,14 @@ RetainSummaryManager::getRetEffectFromAnnotations(QualType RetTy, if (auto RE = getRetEffectFromAnnotations(RetTy, PD)) return RE; - return None; + return std::nullopt; } /// \return Whether the chain of typedefs starting from @c QT /// has a typedef with a given name @c Name. static bool hasTypedefNamed(QualType QT, StringRef Name) { - while (auto *T = dyn_cast(QT)) { + while (auto *T = QT->getAs()) { const auto &Context = T->getDecl()->getASTContext(); if (T->getDecl()->getIdentifier() == &Context.Idents.get(Name)) return true; @@ -990,7 +991,7 @@ RetainSummaryManager::updateSummaryFromAnnotations(const RetainSummary *&Summ, applyParamAnnotationEffect(*pi, parm_idx, FD, Template); QualType RetTy = FD->getReturnType(); - if (Optional RetE = getRetEffectFromAnnotations(RetTy, FD)) + if (std::optional RetE = getRetEffectFromAnnotations(RetTy, FD)) Template->setRetEffect(*RetE); if (hasAnyEnabledAttrOf(FD, RetTy)) @@ -1017,7 +1018,7 @@ RetainSummaryManager::updateSummaryFromAnnotations(const RetainSummary *&Summ, applyParamAnnotationEffect(*pi, parm_idx, MD, Template); QualType RetTy = MD->getReturnType(); - if (Optional RetE = getRetEffectFromAnnotations(RetTy, MD)) + if (std::optional RetE = getRetEffectFromAnnotations(RetTy, MD)) Template->setRetEffect(*RetE); } -- cgit v1.2.3