]> granicus.if.org Git - clang/commitdiff
[analyzer] Remove unused DoNothingByRef and the special case for CFDictionaryCreate.
authorJordy Rose <jediknil@belkadan.com>
Wed, 24 Aug 2011 19:10:50 +0000 (19:10 +0000)
committerJordy Rose <jediknil@belkadan.com>
Wed, 24 Aug 2011 19:10:50 +0000 (19:10 +0000)
This is a very small regression (actually introduced in r138309) because it won't catch leaks of objects passed by reference to CFDictionaryCreate (they're considered to have escaped and are ignored). If this is important we can put in a specific eval::Call to restore the functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138464 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/CFRefCount.cpp

index a9d56c5f31bd5b734f60ca220f66859349d1110e..38693a2fa313f2fbba22fcca385e793e5643305f 100644 (file)
@@ -115,9 +115,9 @@ public:
 
 /// ArgEffect is used to summarize a function/method call's effect on a
 /// particular argument.
-enum ArgEffect { Autorelease, Dealloc, DecRef, DecRefMsg, DoNothing,
+enum ArgEffect { DoNothing, Autorelease, Dealloc, DecRef, DecRefMsg,
                  DecRefBridgedTransfered,
-                 DoNothingByRef, IncRefMsg, IncRef, MakeCollectable, MayEscape,
+                 IncRefMsg, IncRef, MakeCollectable, MayEscape,
                  NewAutoreleasePool, SelfOwn, StopTracking };
 
 namespace llvm {
@@ -612,10 +612,6 @@ class RetainSummaryManager {
   /// Ctx - The ASTContext object for the analyzed ASTs.
   ASTContext &Ctx;
 
-  /// CFDictionaryCreateII - An IdentifierInfo* representing the indentifier
-  ///  "CFDictionaryCreate".
-  IdentifierInfo* CFDictionaryCreateII;
-
   /// GCEnabled - Records whether or not the analyzed code runs in GC mode.
   const bool GCEnabled;
 
@@ -760,7 +756,6 @@ public:
 
   RetainSummaryManager(ASTContext &ctx, bool gcenabled, bool usesARC)
    : Ctx(ctx),
-     CFDictionaryCreateII(&ctx.Idents.get("CFDictionaryCreate")),
      GCEnabled(gcenabled),
      ARCEnabled(usesARC),
      AF(BPAlloc), ScratchArgs(AF.getEmptyMap()),
@@ -1160,11 +1155,6 @@ RetainSummary*
 RetainSummaryManager::getCFSummaryCreateRule(const FunctionDecl *FD) {
   assert (ScratchArgs.isEmpty());
 
-  if (FD->getIdentifier() == CFDictionaryCreateII) {
-    ScratchArgs = AF.add(ScratchArgs, 1, DoNothingByRef);
-    ScratchArgs = AF.add(ScratchArgs, 2, DoNothingByRef);
-  }
-
   return getPersistentSummary(RetEffect::MakeOwned(RetEffect::CF, true));
 }
 
@@ -3184,7 +3174,6 @@ RetainReleaseChecker::updateSymbol(const ProgramState *state, SymbolRef sym,
 
       // Fall-through.
 
-    case DoNothingByRef:
     case DoNothing:
       return state;