r340098 - [analyzer] [NFC] Minor refactoring of ISL-specific code in RetainCountChecker

George Karpenkov via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 17 14:43:27 PDT 2018


Author: george.karpenkov
Date: Fri Aug 17 14:43:27 2018
New Revision: 340098

URL: http://llvm.org/viewvc/llvm-project?rev=340098&view=rev
Log:
[analyzer] [NFC] Minor refactoring of ISL-specific code in RetainCountChecker

Differential Revision: https://reviews.llvm.org/D50879

Modified:
    cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountSummaries.cpp

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp?rev=340098&r1=340097&r2=340098&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp Fri Aug 17 14:43:27 2018
@@ -765,9 +765,7 @@ bool RetainCountChecker::evalCall(const
   bool hasTrustedImplementationAnnotation = false;
 
   // See if it's one of the specific functions we know how to eval.
-  bool canEval = SmrMgr.canEval(CE, FD, hasTrustedImplementationAnnotation);
-
-  if (!canEval)
+  if (!SmrMgr.canEval(CE, FD, hasTrustedImplementationAnnotation))
     return false;
 
   // Bind the return value.
@@ -1235,11 +1233,8 @@ RetainCountChecker::processLeaks(Program
   return N;
 }
 
-static bool isGeneralizedObjectRef(QualType Ty) {
-  if (Ty.getAsString().substr(0, 4) == "isl_")
-    return true;
-  else
-    return false;
+static bool isISLObjectRef(QualType Ty) {
+  return StringRef(Ty.getAsString()).startswith("isl_");
 }
 
 void RetainCountChecker::checkBeginFunction(CheckerContext &Ctx) const {
@@ -1263,9 +1258,9 @@ void RetainCountChecker::checkBeginFunct
 
     QualType Ty = Param->getType();
     const ArgEffect *AE = CalleeSideArgEffects.lookup(idx);
-    if (AE && *AE == DecRef && isGeneralizedObjectRef(Ty)) {
+    if (AE && *AE == DecRef && isISLObjectRef(Ty)) {
       state = setRefBinding(state, Sym, RefVal::makeOwned(RetEffect::ObjKind::Generalized, Ty));
-    } else if (isGeneralizedObjectRef(Ty)) {
+    } else if (isISLObjectRef(Ty)) {
       state = setRefBinding(
           state, Sym,
           RefVal::makeNotOwned(RetEffect::ObjKind::Generalized, Ty));

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountSummaries.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountSummaries.cpp?rev=340098&r1=340097&r2=340098&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountSummaries.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountSummaries.cpp Fri Aug 17 14:43:27 2018
@@ -482,10 +482,10 @@ bool RetainSummaryManager::canEval(const
       return isRetain(FD, FName) || isAutorelease(FD, FName) ||
              isMakeCollectable(FName);
 
-    if (FD->getDefinition()) {
-      bool out = isTrustedReferenceCountImplementation(FD->getDefinition());
-      hasTrustedImplementationAnnotation = out;
-      return out;
+    const FunctionDecl* FDD = FD->getDefinition();
+    if (FDD && isTrustedReferenceCountImplementation(FDD)) {
+      hasTrustedImplementationAnnotation = true;
+      return true;
     }
   }
 




More information about the cfe-commits mailing list