summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h4
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp385
-rw-r--r--clang/test/Analysis/CFDateGC.m85
-rw-r--r--clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes-gc.m.plist1172
-rw-r--r--clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist1298
-rw-r--r--clang/test/Analysis/PR2599.m63
-rw-r--r--clang/test/Analysis/retain-release-gc-only.m434
-rw-r--r--clang/test/Analysis/retain-release-path-notes-gc.m75
-rw-r--r--clang/test/Analysis/retain-release-path-notes.m10
-rw-r--r--clang/test/Analysis/retain-release.m14
10 files changed, 579 insertions, 2961 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h b/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
index f5a06394b18..9f5f249db84 100644
--- a/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
+++ b/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
@@ -65,10 +65,6 @@ enum ArgEffect {
/// if CFRetain has been called on the argument.
IncRef,
- /// The argument acts as if has been passed to CFMakeCollectable, which
- /// transfers the object to the Garbage Collector under GC.
- MakeCollectable,
-
/// The argument is a pointer to a retain-counted object; on exit, the new
/// value of the pointer is a +0 value or NULL.
UnretainedOutParameter,
diff --git a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
index 1d773c31cd8..127f20bee71 100644
--- a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
@@ -83,14 +83,12 @@ public:
ReturnedNotOwned, // Return object does not pass ownership to caller.
ERROR_START,
ErrorDeallocNotOwned, // -dealloc called on non-owned object.
- ErrorDeallocGC, // Calling -dealloc with GC enabled.
ErrorUseAfterRelease, // Object used after released.
ErrorReleaseNotOwned, // Release of an object that was not owned.
ERROR_LEAK_START,
ErrorLeak, // A memory leak due to excessive reference counts.
ErrorLeakReturned, // A memory leak due to the returning method not having
// the correct naming conventions.
- ErrorGCLeakReturned,
ErrorOverAutorelease,
ErrorReturnedNotOwned
};
@@ -303,10 +301,6 @@ void RefVal::print(raw_ostream &Out) const {
Out << "Released";
break;
- case ErrorDeallocGC:
- Out << "-dealloc (GC)";
- break;
-
case ErrorDeallocNotOwned:
Out << "-dealloc (not-owned)";
break;
@@ -319,10 +313,6 @@ void RefVal::print(raw_ostream &Out) const {
Out << "Leaked (Bad naming)";
break;
- case ErrorGCLeakReturned:
- Out << "Leaked (GC-ed at return)";
- break;
-
case ErrorUseAfterRelease:
Out << "Use-After-Release [ERROR]";
break;
@@ -600,9 +590,6 @@ class RetainSummaryManager {
/// Ctx - The ASTContext object for the analyzed ASTs.
ASTContext &Ctx;
- /// GCEnabled - Records whether or not the analyzed code runs in GC mode.
- const bool GCEnabled;
-
/// Records whether or not the analyzed code runs in ARC mode.
const bool ARCEnabled;
@@ -646,7 +633,7 @@ class RetainSummaryManager {
/// data in ScratchArgs.
ArgEffects getArgEffects();
- enum UnaryFuncKind { cfretain, cfrelease, cfautorelease, cfmakecollectable };
+ enum UnaryFuncKind { cfretain, cfrelease, cfautorelease };
const RetainSummary *getUnarySummary(const FunctionType* FT,
UnaryFuncKind func);
@@ -732,19 +719,14 @@ private:
public:
- RetainSummaryManager(ASTContext &ctx, bool gcenabled, bool usesARC)
+ RetainSummaryManager(ASTContext &ctx, bool usesARC)
: Ctx(ctx),
- GCEnabled(gcenabled),
ARCEnabled(usesARC),
AF(BPAlloc), ScratchArgs(AF.getEmptyMap()),
- ObjCAllocRetE(gcenabled
- ? RetEffect::MakeGCNotOwned()
- : (usesARC ? RetEffect::MakeNotOwned(RetEffect::ObjC)
- : RetEffect::MakeOwned(RetEffect::ObjC))),
- ObjCInitRetE(gcenabled
- ? RetEffect::MakeGCNotOwned()
- : (usesARC ? RetEffect::MakeNotOwned(RetEffect::ObjC)
- : RetEffect::MakeOwnedWhenTrackedReceiver())) {
+ ObjCAllocRetE(usesARC ? RetEffect::MakeNotOwned(RetEffect::ObjC)
+ : RetEffect::MakeOwned(RetEffect::ObjC)),
+ ObjCInitRetE(usesARC ? RetEffect::MakeNotOwned(RetEffect::ObjC)
+ : RetEffect::MakeOwnedWhenTrackedReceiver()) {
InitializeClassMethodSummaries();
InitializeMethodSummaries();
}
@@ -802,12 +784,8 @@ public:
void updateSummaryForCall(const RetainSummary *&Summ,
const CallEvent &Call);
- bool isGCEnabled() const { return GCEnabled; }
-
bool isARCEnabled() const { return ARCEnabled; }
- bool isARCorGCEnabled() const { return GCEnabled || ARCEnabled; }
-
RetEffect getObjAllocRetEffect() const { return ObjCAllocRetE; }
friend class RetainSummaryTemplate;
@@ -895,12 +873,6 @@ static bool isAutorelease(const FunctionDecl *FD, StringRef FName) {
FName.endswith_lower("autorelease");
}
-static bool isMakeCollectable(const FunctionDecl *FD, StringRef FName) {
- // FIXME: Remove FunctionDecl parameter.
- // FIXME: Is it really okay if MakeCollectable isn't a suffix?
- return FName.find_lower("MakeCollectable") != StringRef::npos;
-}
-
static ArgEffect getStopTrackingHardEquivalent(ArgEffect E) {
switch (E) {
case DoNothing:
@@ -908,7 +880,6 @@ static ArgEffect getStopTrackingHardEquivalent(ArgEffect E) {
case DecRefBridgedTransferred:
case IncRef:
case IncRefMsg:
- case MakeCollectable:
case UnretainedOutParameter:
case RetainedOutParameter:
case MayEscape:
@@ -1073,14 +1044,6 @@ RetainSummaryManager::getFunctionSummary(const FunctionDecl *FD) {
// Part of: <rdar://problem/7299394> and <rdar://problem/11282706>.
// This will be addressed better with IPA.
S = getPersistentStopSummary();
- } else if (FName == "NSMakeCollectable") {
- // Handle: id NSMakeCollectable(CFTypeRef)
- S = (RetTy->isObjCIdType())
- ? getUnarySummary(FT, cfmakecollectable)
- : getPersistentStopSummary();
- // The headers on OS X 10.8 use cf_consumed/ns_returns_retained,
- // but we can fully model NSMakeCollectable ourselves.
- AllowAnnotations = false;
} else if (FName == "CFPlugInInstanceCreate") {
S = getPersistentSummary(RetEffect::MakeNoRet());
} else if (FName == "IORegistryEntrySearchCFProperty"
@@ -1181,9 +1144,6 @@ RetainSummaryManager::getFunctionSummary(const FunctionDecl *FD) {
// The headers use cf_consumed, but we can fully model CFAutorelease
// ourselves.
AllowAnnotations = false;
- } else if (isMakeCollectable(FD, FName)) {
- S = getUnarySummary(FT, cfmakecollectable);
- AllowAnnotations = false;
} else {
S = getCFCreateGetRuleSummary(FD);
}
@@ -1294,7 +1254,6 @@ RetainSummaryManager::getUnarySummary(const FunctionType* FT,
case cfretain: Effect = IncRef; break;
case cfrelease: Effect = DecRef; break;
case cfautorelease: Effect = Autorelease; break;
- case cfmakecollectable: Effect = MakeCollectable; break;
}
ScratchArgs = AF.add(ScratchArgs, 0, Effect);
@@ -1732,16 +1691,6 @@ namespace {
}
};
- class DeallocGC : public CFRefBug {
- public:
- DeallocGC(const CheckerBase *checker)
- : CFRefBug(checker, "-dealloc called while using garbage collection") {}
-
- const char *getDescription() const override {
- return "-dealloc called while using garbage collection";
- }
- };
-
class DeallocNotOwned : public CFRefBug {
public:
DeallocNotOwned(const CheckerBase *checker)
@@ -1792,11 +1741,10 @@ namespace {
protected:
SymbolRef Sym;
const SummaryLogTy &SummaryLog;
- bool GCEnabled;
public:
- CFRefReportVisitor(SymbolRef sym, bool gcEnabled, const SummaryLogTy &log)
- : Sym(sym), SummaryLog(log), GCEnabled(gcEnabled) {}
+ CFRefReportVisitor(SymbolRef sym, const SummaryLogTy &log)
+ : Sym(sym), SummaryLog(log) {}
void Profile(llvm::FoldingSetNodeID &ID) const override {
static int x = 0;
@@ -1816,9 +1764,9 @@ namespace {
class CFRefLeakReportVisitor : public CFRefReportVisitor {
public:
- CFRefLeakReportVisitor(SymbolRef sym, bool GCEnabled,
+ CFRefLeakReportVisitor(SymbolRef sym,
const SummaryLogTy &log)
- : CFRefReportVisitor(sym, GCEnabled, log) {}
+ : CFRefReportVisitor(sym, log) {}
std::shared_ptr<PathDiagnosticPiece> getEndPath(BugReporterContext &BRC,
const ExplodedNode *N,
@@ -1826,24 +1774,21 @@ namespace {
};
class CFRefReport : public BugReport {
- void addGCModeDescription(const LangOptions &LOpts, bool GCEnabled);
public:
- CFRefReport(CFRefBug &D, const LangOptions &LOpts, bool GCEnabled,
+ CFRefReport(CFRefBug &D, const LangOptions &LOpts,
const SummaryLogTy &Log, ExplodedNode *n, SymbolRef sym,
bool registerVisitor = true)
: BugReport(D, D.getDescription(), n) {
if (registerVisitor)
- addVisitor(llvm::make_unique<CFRefReportVisitor>(sym, GCEnabled, Log));
- addGCModeDescription(LOpts, GCEnabled);
+ addVisitor(llvm::make_unique<CFRefReportVisitor>(sym, Log));
}
- CFRefReport(CFRefBug &D, const LangOptions &LOpts, bool GCEnabled,
+ CFRefReport(CFRefBug &D, const LangOptions &LOpts,
const SummaryLogTy &Log, ExplodedNode *n, SymbolRef sym,
StringRef endText)
: BugReport(D, D.getDescription(), endText, n) {
- addVisitor(llvm::make_unique<CFRefReportVisitor>(sym, GCEnabled, Log));
- addGCModeDescription(LOpts, GCEnabled);
+ addVisitor(llvm::make_unique<CFRefReportVisitor>(sym, Log));
}
llvm::iterator_range<ranges_iterator> getRanges() override {
@@ -1863,10 +1808,10 @@ namespace {
// Finds the location where a leak warning for 'sym' should be raised.
void deriveAllocLocation(CheckerContext &Ctx, SymbolRef sym);
// Produces description of a leak warning which is printed on the console.
- void createDescription(CheckerContext &Ctx, bool GCEnabled, bool IncludeAllocationLine);
+ void createDescription(CheckerContext &Ctx, bool IncludeAllocationLine);
public:
- CFRefLeakReport(CFRefBug &D, const LangOptions &LOpts, bool GCEnabled,
+ CFRefLeakReport(CFRefBug &D, const LangOptions &LOpts,
const SummaryLogTy &Log, ExplodedNode *n, SymbolRef sym,
CheckerContext &Ctx,
bool IncludeAllocationLine);
@@ -1878,39 +1823,6 @@ namespace {
};
} // end anonymous namespace
-void CFRefReport::addGCModeDescription(const LangOptions &LOpts,
- bool GCEnabled) {
- const char *GCModeDescription = nullptr;
-
- switch (LOpts.getGC()) {
- case LangOptions::GCOnly:
- assert(GCEnabled);
- GCModeDescription = "Code is compiled to only use garbage collection";
- break;
-
- case LangOptions::NonGC:
- assert(!GCEnabled);
- GCModeDescription = "Code is compiled to use reference counts";
- break;
-
- case LangOptions::HybridGC:
- if (GCEnabled) {
- GCModeDescription = "Code is compiled to use either garbage collection "
- "(GC) or reference counts (non-GC). The bug occurs "
- "with GC enabled";
- break;
- } else {
- GCModeDescription = "Code is compiled to use either garbage collection "
- "(GC) or reference counts (non-GC). The bug occurs "
- "in non-GC mode";
- break;
- }
- }
-
- assert(GCModeDescription && "invalid/unknown GC mode");
- addExtraText(GCModeDescription);
-}
-
static bool isNumericLiteralExpression(const Expr *E) {
// FIXME: This set of cases was copied from SemaExprObjC.
return isa<IntegerLiteral>(E) ||
@@ -2047,14 +1959,7 @@ CFRefReportVisitor::VisitNode(const ExplodedNode *N, const ExplodedNode *PrevN,
if (CurrV.isOwned()) {
os << "+1 retain count";
-
- if (GCEnabled) {
- assert(CurrV.getObjKind() == RetEffect::CF);
- os << ". "
- "Core Foundation objects are not automatically garbage collected.";
- }
- }
- else {
+ } else {
assert (CurrV.isNotOwned());
os << "+0 retain count";
}
@@ -2091,14 +1996,14 @@ CFRefReportVisitor::VisitNode(const ExplodedNode *N, const ExplodedNode *PrevN,
// We have an argument. Get the effect!
AEffects.push_back(Summ->getArg(i));
}
- }
- else if (const ObjCMessageExpr *ME = dyn_cast<ObjCMessageExpr>(S)) {
- if (const Expr *receiver = ME->getInstanceReceiver())
+ } else if (const ObjCMessageExpr *ME = dyn_cast<ObjCMessageExpr>(S)) {
+ if (const Expr *receiver = ME->getInstanceReceiver()) {
if (CurrSt->getSValAsScalarOrLoc(receiver, LCtx)
.getAsLocSymbol() == Sym) {
// The symbol we are tracking is the receiver.
AEffects.push_back(Summ->getReceiverEffect());
}
+ }
}
}
@@ -2107,7 +2012,7 @@ CFRefReportVisitor::VisitNode(const ExplodedNode *N, const ExplodedNode *PrevN,
RefVal PrevV = *PrevT;
// Specially handle -dealloc.
- if (!GCEnabled && std::find(AEffects.begin(), AEffects.end(), Dealloc) !=
+ if (std::find(AEffects.begin(), AEffects.end(), Dealloc) !=
AEffects.end()) {
// Determine if the object's reference count was pushed to zero.
assert(!PrevV.hasSameState(CurrV) && "The state should have changed.");
@@ -2120,41 +2025,6 @@ CFRefReportVisitor::VisitNode(const ExplodedNode *N, const ExplodedNode *PrevN,
}
}
- // Specially handle CFMakeCollectable and friends.
- if (std::find(AEffects.begin(), AEffects.end(), MakeCollectable) !=
- AEffects.end()) {
- // Get the name of the function.
- const Stmt *S = N->getLocation().castAs<StmtPoint>().getStmt();
- SVal X =
- CurrSt->getSValAsScalarOrLoc(cast<CallExpr>(S)->getCallee(), LCtx);
- const FunctionDecl *FD = X.getAsFunctionDecl();
-
- if (GCEnabled) {
- // Determine if the object's reference count was pushed to zero.
- assert(!PrevV.hasSameState(CurrV) && "The state should have changed.");
-
- os << "In GC mode a call to '" << *FD
- << "' decrements an object's retain count and registers the "
- "object with the garbage collector. ";
-
- if (CurrV.getKind() == RefVal::Released) {
- assert(CurrV.getCount() == 0);
- os << "Since it now has a 0 retain count the object can be "
- "automatically collected by the garbage collector.";
- }
- else
- os << "An object must have a 0 retain count to be garbage collected. "
- "After this call its retain count is +" << CurrV.getCount()
- << '.';
- }
- else
- os << "When GC is not enabled a call to '" << *FD
- << "' has no effect on its argument.";
-
- // Nothing more to say.
- break;
- }
-
// Determine if the typestate has changed.
if (!PrevV.hasSameState(CurrV))
switch (CurrV.getKind()) {
@@ -2178,12 +2048,6 @@ CFRefReportVisitor::VisitNode(const ExplodedNode *N, const ExplodedNode *PrevN,
if (unsigned Count = CurrV.getCount())
os << " The object now has a +" << Count << " retain count.";
- if (PrevV.getKind() == RefVal::Released) {
- assert(GCEnabled && CurrV.getCount() > 0);
- os << " The object is not eligible for garbage collection until "
- "the retain count reaches 0 again.";
- }
-
break;
case RefVal::Released:
@@ -2211,26 +2075,6 @@ CFRefReportVisitor::VisitNode(const ExplodedNode *N, const ExplodedNode *PrevN,
default:
return nullptr;
}
-
- // Emit any remaining diagnostics for the argument effects (if any).
- for (SmallVectorImpl<ArgEffect>::iterator I=AEffects.begin(),
- E=AEffects.end(); I != E; ++I) {
-
- // A bunch of things have alternate behavior under GC.
- if (GCEnabled)
- switch (*I) {
- default: break;
- case Autorelease:
- os << "In GC mode an 'autorelease' has no effect.";
- continue;
- case IncRefMsg:
- os << "In GC mode the 'retain' message has no effect.";
- continue;
- case DecRefMsg:
- os << "In GC mode the 'release' message has no effect.";
- continue;
- }
- }
} while (0);
if (os.str().empty())
@@ -2437,14 +2281,6 @@ CFRefLeakReportVisitor::getEndPath(BugReporterContext &BRC,
}
}
}
- else if (RV->getKind() == RefVal::ErrorGCLeakReturned) {
- const ObjCMethodDecl &MD = cast<ObjCMethodDecl>(EndN->getCodeDecl());
- os << " and returned from method '" << MD.getSelector().getAsString()
- << "' is potentially leaked when using garbage collection. Callers "
- "of this method do not expect a returned object with a +1 retain "
- "count since they expect the object to be managed by the garbage "
- "collector";
- }
else
os << " is not referenced later in this execution path and has a retain "
"count of +" << RV->getCount();
@@ -2512,15 +2348,12 @@ void CFRefLeakReport::deriveAllocLocation(CheckerContext &Ctx,SymbolRef sym) {
UniqueingDecl = AllocNode->getLocationContext()->getDecl();
}
-void CFRefLeakReport::createDescription(CheckerContext &Ctx, bool GCEnabled,
+void CFRefLeakReport::createDescription(CheckerContext &Ctx,
bool IncludeAllocationLine) {
assert(Location.isValid() && UniqueingDecl && UniqueingLocation.isValid());
Description.clear();
llvm::raw_string_ostream os(Description);
- os << "Potential leak ";
- if (GCEnabled)
- os << "(when using garbage collection) ";
- os << "of an object";
+ os << "Potential leak of an object";
Optional<std::string> RegionDescription = describeRegion(AllocBinding);
if (RegionDescription) {
@@ -2533,19 +2366,19 @@ void CFRefLeakReport::createDescription(CheckerContext &Ctx, bool GCEnabled,
}
CFRefLeakReport::CFRefLeakReport(CFRefBug &D, const LangOptions &LOpts,
- bool GCEnabled, const SummaryLogTy &Log,
+ const SummaryLogTy &Log,
ExplodedNode *n, SymbolRef sym,
CheckerContext &Ctx,
bool IncludeAllocationLine)
- : CFRefReport(D, LOpts, GCEnabled, Log, n, sym, false) {
+ : CFRefReport(D, LOpts, Log, n, sym, false) {
deriveAllocLocation(Ctx, sym);
if (!AllocBinding)
deriveParamLocation(Ctx, sym);
- createDescription(Ctx, GCEnabled, IncludeAllocationLine);
+ createDescription(Ctx, IncludeAllocationLine);
- addVisitor(llvm::make_unique<CFRefLeakReportVisitor>(sym, GCEnabled, Log));
+ addVisitor(llvm::make_unique<CFRefLeakReportVisitor>(sym, Log));
}
//===----------------------------------------------------------------------===//
@@ -2571,10 +2404,9 @@ class RetainCountChecker
eval::Assume,
eval::Call > {
mutable std::unique_ptr<CFRefBug> useAfterRelease, releaseNotOwned;
- mutable std::unique_ptr<CFRefBug> deallocGC, deallocNotOwned;
+ mutable std::unique_ptr<CFRefBug> deallocNotOwned;
mutable std::unique_ptr<CFRefBug> overAutorelease, returnNotOwnedForOwned;
mutable std::unique_ptr<CFRefBug> leakWithinFunction, leakAtReturn;
- mutable std::unique_ptr<CFRefBug> leakWithinFunctionGC, leakAtReturnGC;
typedef llvm::DenseMap<SymbolRef, const CheckerProgramPointTag *> SymbolTagMap;
@@ -2582,7 +2414,6 @@ class RetainCountChecker
mutable SymbolTagMap DeadSymbolTags;
mutable std::unique_ptr<RetainSummaryManager> Summaries;
- mutable std::unique_ptr<RetainSummaryManager> SummariesGC;
mutable SummaryLogTy SummaryLog;
mutable bool ShouldResetSummaryLog;
@@ -2633,72 +2464,31 @@ public:
ShouldResetSummaryLog = !SummaryLog.empty();
}
- CFRefBug *getLeakWithinFunctionBug(const LangOptions &LOpts,
- bool GCEnabled) const {
- if (GCEnabled) {
- if (!leakWithinFunctionGC)
- leakWithinFunctionGC.reset(new Leak(this, "Leak of object when using "
- "garbage collection"));
- return leakWithinFunctionGC.get();
- } else {
- if (!leakWithinFunction) {
- if (LOpts.getGC() == LangOptions::HybridGC) {
- leakWithinFunction.reset(new Leak(this,
- "Leak of object when not using "
- "garbage collection (GC) in "
- "dual GC/non-GC code"));
- } else {
- leakWithinFunction.reset(new Leak(this, "Leak"));
- }
- }
- return leakWithinFunction.get();
- }
+ CFRefBug *getLeakWithinFunctionBug(const LangOptions &LOpts) const {
+ if (!leakWithinFunction)
+ leakWithinFunction.reset(new Leak(this, "Leak"));
+ return leakWithinFunction.get();
}
- CFRefBug *getLeakAtReturnBug(const LangOptions &LOpts, bool GCEnabled) const {
- if (GCEnabled) {
- if (!leakAtReturnGC)
- leakAtReturnGC.reset(new Leak(this,
- "Leak of returned object when using "
- "garbage collection"));
- return leakAtReturnGC.get();
- } else {
- if (!leakAtReturn) {
- if (LOpts.getGC() == LangOptions::HybridGC) {
- leakAtReturn.reset(new Leak(this,
- "Leak of returned object when not using "
- "garbage collection (GC) in dual "
- "GC/non-GC code"));
- } else {
- leakAtReturn.reset(new Leak(this, "Leak of returned object"));
- }
- }
+ CFRefBug *getLeakAtReturnBug(const LangOptions &LOpts) const {
+ if (!leakAtReturn)
+ leakAtReturn.reset(new Leak(this, "Leak of returned object"));
return leakAtReturn.get();
- }
}
- RetainSummaryManager &getSummaryManager(ASTContext &Ctx,
- bool GCEnabled) const {
+ RetainSummaryManager &getSummaryManager(ASTContext &Ctx) const {
// FIXME: We don't support ARC being turned on and off during one analysis.
// (nor, for that matter, do we support changing ASTContexts)
bool ARCEnabled = (bool)Ctx.getLangOpts().ObjCAutoRefCount;
- if (GCEnabled) {
- if (!SummariesGC)
- SummariesGC.reset(new RetainSummaryManager(Ctx, true, ARCEnabled));
- else
- assert(SummariesGC->isARCEnabled() == ARCEnabled);
- return *SummariesGC;
- } else {
- if (!Summaries)
- Summaries.reset(new RetainSummaryManager(Ctx, false, ARCEnabled));
- else
- assert(Summaries->isARCEnabled() == ARCEnabled);
- return *Summaries;
- }
+ if (!Summaries)
+ Summaries.reset(new RetainSummaryManager(Ctx, ARCEnabled));
+ else
+ assert(Summaries->isARCEnabled() == ARCEnabled);
+ return *Summaries;
}
RetainSummaryManager &getSummaryManager(CheckerContext &C) const {
- return getSummaryManager(C.getASTContext(), C.isObjCGCEnabled());
+ return getSummaryManager(C.getASTContext());
}
void printState(raw_ostream &Out, ProgramStateRef State,
@@ -3177,7 +2967,6 @@ void RetainCountChecker::checkSummary(const RetainSummary &Summ,
break;
}
- case RetEffect::GCNotOwnedSymbol:
case RetEffect::NotOwnedSymbol: {
const Expr *Ex = CallOrMsg.getOriginExpr();
SymbolRef Sym = CallOrMsg.getReturnValue().getAsSymbol();
@@ -3217,12 +3006,7 @@ ProgramStateRef
RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
RefVal V, ArgEffect E, RefVal::Kind &hasErr,
CheckerContext &C) const {
- // In GC mode [... release] and [... retain] do nothing.
- // In ARC mode they shouldn't exist at all, but we just ignore them.
- bool IgnoreRetainMsg = C.isObjCGCEnabled();
- if (!IgnoreRetainMsg)
- IgnoreRetainMsg = (bool)C.getASTContext().getLangOpts().ObjCAutoRefCount;
-
+ bool IgnoreRetainMsg = (bool)C.getASTContext().getLangOpts().ObjCAutoRefCount;
switch (E) {
default:
break;
@@ -3230,18 +3014,15 @@ RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
E = IgnoreRetainMsg ? DoNothing : IncRef;
break;
case DecRefMsg:
- E = IgnoreRetainMsg ? DoNothing : DecRef;
+ E = IgnoreRetainMsg ? DoNothing: DecRef;
break;
case DecRefMsgAndStopTrackingHard:
E = IgnoreRetainMsg ? StopTracking : DecRefAndStopTrackingHard;
break;
- case MakeCollectable:
- E = C.isObjCGCEnabled() ? DecRef : DoNothing;
- break;
}
// Handle all use-after-releases.
- if (!C.isObjCGCEnabled() && V.getKind() == RefVal::Released) {
+ if (V.getKind() == RefVal::Released) {
V = V ^ RefVal::ErrorUseAfterRelease;
hasErr = V.getKind();
return setRefBinding(state, sym, V);
@@ -3250,9 +3031,8 @@ RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
switch (E) {
case DecRefMsg:
case IncRefMsg:
- case MakeCollectable:
case DecRefMsgAndStopTrackingHard:
- llvm_unreachable("DecRefMsg/IncRefMsg/MakeCollectable already converted");
+ llvm_unreachable("DecRefMsg/IncRefMsg already converted");
case UnretainedOutParameter:
case RetainedOutParameter:
@@ -3260,13 +3040,6 @@ RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
"not have ref state.");
case Dealloc:
- // Any use of -dealloc in GC is *bad*.
- if (C.isObjCGCEnabled()) {
- V = V ^ RefVal::ErrorDeallocGC;
- hasErr = V.getKind();
- break;
- }
-
switch (V.getKind()) {
default:
llvm_unreachable("Invalid RefVal state for an explicit dealloc.");
@@ -3294,8 +3067,6 @@ RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
return state;
case Autorelease:
- if (C.isObjCGCEnabled())
- return state;
// Update the autorelease counts.
V = V.autorelease();
break;
@@ -3312,11 +3083,6 @@ RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
case RefVal::NotOwned:
V = V + 1;
break;
- case RefVal::Released:
- // Non-GC cases are handled above.
- assert(C.isObjCGCEnabled());
- V = (V ^ RefVal::Owned) + 1;
- break;
}
break;
@@ -3361,13 +3127,6 @@ RetainCountChecker::updateSymbol(ProgramStateRef state, SymbolRef sym,
hasErr = V.getKind();
}
break;
-
- case RefVal::Released:
- // Non-GC cases are handled above.
- assert(C.isObjCGCEnabled());
- V = V ^ RefVal::ErrorUseAfterRelease;
- hasErr = V.getKind();
- break;
}
break;
}
@@ -3407,11 +3166,6 @@ void RetainCountChecker::processNonLeakError(ProgramStateRef St,
releaseNotOwned.reset(new BadRelease(this));
BT = releaseNotOwned.get();
break;
- case RefVal::ErrorDeallocGC:
- if (!deallocGC)
- deallocGC.reset(new DeallocGC(this));
- BT = deallocGC.get();
- break;
case RefVal::ErrorDeallocNotOwned:
if (!deallocNotOwned)
deallocNotOwned.reset(new DeallocNotOwned(this));
@@ -3421,7 +3175,7 @@ void RetainCountChecker::processNonLeakError(ProgramStateRef St,
assert(BT);
auto report = std::unique_ptr<BugReport>(
- new CFRefReport(*BT, C.getASTContext().getLangOpts(), C.isObjCGCEnabled(),
+ new CFRefReport(*BT, C.getASTContext().getLangOpts(),
SummaryLog, N, Sym));
report->addRange(ErrorRange);
C.emitReport(std::move(report));
@@ -3443,7 +3197,7 @@ bool RetainCountChecker::evalCall(const CallExpr *CE, CheckerContext &C) const {
return false;
// For now, we're only handling the functions that return aliases of their
- // arguments: CFRetain and CFMakeCollectable (and their families).
+ // arguments: CFRetain (and its families).
// Eventually we should add other functions we can model entirely,
// such as CFRelease, which don't invalidate their arguments or globals.
if (CE->getNumArgs() != 1)
@@ -3460,19 +3214,14 @@ bool RetainCountChecker::evalCall(const CallExpr *CE, CheckerContext &C) const {
bool hasTrustedImplementationAnnotation = false;
QualType ResultTy = CE->getCallReturnType(C.getASTContext());
- if (ResultTy->isObjCIdType()) {
- // Handle: id NSMakeCollectable(CFTypeRef)
- canEval = II->isStr("NSMakeCollectable");
- } else if (ResultTy->isPointerType()) {
+ if (ResultTy->isPointerType()) {
// Handle: (CF|CG|CV)Retain
// CFAutorelease
- // CFMakeCollectable
- // It's okay to be a little sloppy here (CGMakeCollectable doesn't exist).
+ // It's okay to be a little sloppy here.
if (cocoa::isRefType(ResultTy, "CF", FName) ||
cocoa::isRefType(ResultTy, "CG", FName) ||
cocoa::isRefType(ResultTy, "CV", FName)) {
- canEval = isRetain(FD, FName) || isAutorelease(FD, FName) ||
- isMakeCollectable(FD, FName);
+ canEval = isRetain(FD, FName) || isAutorelease(FD, FName);
} else {
if (FD->getDefinition()) {
canEval = isTrustedReferenceCountImplementation(FD->getDefinition());
@@ -3641,18 +3390,9 @@ void RetainCountChecker::checkReturnWithRetEffect(const ReturnStmt *S,
if (X.isReturnedOwned() && X.getCount() == 0) {
if (RE.getKind() != RetEffect::NoRet) {
bool hasError = false;
- if (C.isObjCGCEnabled() && RE.getObjKind() == RetEffect::ObjC) {
- // Things are more complicated with garbage collection. If the
- // returned object is suppose to be an Objective-C object, we have
- // a leak (as the caller expects a GC'ed object) because no
- // method should return ownership unless it returns a CF object.
- hasError = true;
- X = X ^ RefVal::ErrorGCLeakReturned;
- }
- else if (!RE.isOwned()) {
- // Either we are using GC and the returned object is a CF type
- // or we aren't using GC. In either case, we expect that the
- // enclosing method is expected to return ownership.
+ if (!RE.isOwned()) {
+ // The returning type is a CF, we expect the enclosing method should
+ // return ownership.
hasError = true;
X = X ^ RefVal::ErrorLeakReturned;
}
@@ -3665,9 +3405,8 @@ void RetainCountChecker::checkReturnWithRetEffect(const ReturnStmt *S,
ExplodedNode *N = C.addTransition(state, Pred, &ReturnOwnLeakTag);
if (N) {
const LangOptions &LOpts = C.getASTContext().getLangOpts();
- bool GCEnabled = C.isObjCGCEnabled();
C.emitReport(std::unique_ptr<BugReport>(new CFRefLeakReport(
- *getLeakAtReturnBug(LOpts, GCEnabled), LOpts, GCEnabled,
+ *getLeakAtReturnBug(LOpts), LOpts,
SummaryLog, N, Sym, C, IncludeAllocationLine)));
}
}
@@ -3695,7 +3434,7 @@ void RetainCountChecker::checkReturnWithRetEffect(const ReturnStmt *S,
C.emitReport(std::unique_ptr<BugReport>(new CFRefReport(
*returnNotOwnedForOwned, C.getASTContext().getLangOpts(),
- C.isObjCGCEnabled(), SummaryLog, N, Sym)));
+ SummaryLog, N, Sym)));
}
}
}
@@ -3839,7 +3578,6 @@ RetainCountChecker::handleAutoreleaseCounts(ProgramStateRef state,
if (!ACnt)
return state;
- assert(!Ctx.isObjCGCEnabled() && "Autorelease counts in GC mode?");
unsigned Cnt = V.getCount();
// FIXME: Handle sending 'autorelease' to already released object.
@@ -3899,7 +3637,7 @@ RetainCountChecker::handleAutoreleaseCounts(ProgramStateRef state,
const LangOptions &LOpts = Ctx.getASTContext().getLangOpts();
Ctx.emitReport(std::unique_ptr<BugReport>(
- new CFRefReport(*overAutorelease, LOpts, /* GCEnabled = */ false,
+ new CFRefReport(*overAutorelease, LOpts,
SummaryLog, N, Sym, os.str())));
}
@@ -3947,13 +3685,12 @@ RetainCountChecker::processLeaks(ProgramStateRef state,
I = Leaked.begin(), E = Leaked.end(); I != E; ++I) {
const LangOptions &LOpts = Ctx.getASTContext().getLangOpts();
- bool GCEnabled = Ctx.isObjCGCEnabled();
- CFRefBug *BT = Pred ? getLeakWithinFunctionBug(LOpts, GCEnabled)
- : getLeakAtReturnBug(LOpts, GCEnabled);
+ CFRefBug *BT = Pred ? getLeakWithinFunctionBug(LOpts)
+ : getLeakAtReturnBug(LOpts);
assert(BT && "BugType not initialized.");
Ctx.emitReport(std::unique_ptr<BugReport>(
- new CFRefLeakReport(*BT, LOpts, GCEnabled, SummaryLog, N, *I, Ctx,
+ new CFRefLeakReport(*BT, LOpts, SummaryLog, N, *I, Ctx,
IncludeAllocationLine)));
}
}
@@ -4130,7 +3867,7 @@ namespace objc_retain {
#define createCallEffect(D, KIND)\
ASTContext &Ctx = D->getASTContext();\
LangOptions L = Ctx.getLangOpts();\
- RetainSummaryManager M(Ctx, L.GCOnly, L.ObjCAutoRefCount);\
+ RetainSummaryManager M(Ctx, L.ObjCAutoRefCount);\
const RetainSummary *S = M.get ## KIND ## Summary(D);\
CallEffects CE(S->getRetEffect());\
CE.Receiver = S->getReceiverEffect();\
diff --git a/clang/test/Analysis/CFDateGC.m b/clang/test/Analysis/CFDateGC.m
deleted file mode 100644
index 714e213f957..00000000000
--- a/clang/test/Analysis/CFDateGC.m
+++ /dev/null
@@ -1,85 +0,0 @@
-// RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount -analyzer-store=region -verify -fobjc-gc %s -Wno-implicit-function-declaration
-
-//===----------------------------------------------------------------------===//
-// The following code is reduced using delta-debugging from
-// Foundation.h and CoreFoundation.h (Mac OS X).
-//
-// It includes the basic definitions for the test cases below.
-// Not directly including [Core]Foundation.h directly makes this test case
-// both svelte and portable to non-Mac platforms.
-//===----------------------------------------------------------------------===//
-
-typedef const void * CFTypeRef;
-void CFRelease(CFTypeRef cf);
-CFTypeRef CFRetain(CFTypeRef cf);
-CFTypeRef CFMakeCollectable(CFTypeRef cf);
-typedef const struct __CFAllocator * CFAllocatorRef;
-typedef double CFTimeInterval;
-typedef CFTimeInterval CFAbsoluteTime;
-typedef const struct __CFDate * CFDateRef;
-extern CFDateRef CFDateCreate(CFAllocatorRef allocator, CFAbsoluteTime at);
-extern CFAbsoluteTime CFDateGetAbsoluteTime(CFDateRef theDate);
-typedef struct objc_object {} *id;
-typedef signed char BOOL;
-static __inline__ __attribute__((always_inline)) id NSMakeCollectable(CFTypeRef cf) { return 0; }
-@protocol NSObject - (BOOL)isEqual:(id)object;
-- (oneway void)release;
-- (id)retain;
-@end
-@class NSArray;
-
-//===----------------------------------------------------------------------===//
-// Test cases.
-//===----------------------------------------------------------------------===//
-
-CFAbsoluteTime CFAbsoluteTimeGetCurrent();
-
-CFAbsoluteTime f1_use_after_release() {
- CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
- CFDateRef date = CFDateCreate(0, t);
- CFRetain(date);
- [NSMakeCollectable(date) release];
- CFDateGetAbsoluteTime(date); // no-warning
- CFRelease(date);
- t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released}}
- return t;
-}
-
-// The following two test cases verifies that CFMakeCollectable is a no-op
-// in non-GC mode and a "release" in GC mode.
-CFAbsoluteTime f2_use_after_release() {
- CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
- CFDateRef date = CFDateCreate(0, t);
- CFRetain(date);
- [(id) CFMakeCollectable(date) release];
- CFDateGetAbsoluteTime(date); // no-warning
- CFRelease(date);
- t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released}}
- return t;
-}
-
-CFAbsoluteTime f2_noleak() {
- CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
- CFDateRef date = CFDateCreate(0, t);
- CFRetain(date);
- [(id) CFMakeCollectable(date) release];
- CFDateGetAbsoluteTime(date); // no-warning
- t = CFDateGetAbsoluteTime(date); // no-warning
- CFRelease(date); // no-warning
- return t;
-}
-
-void f3_leak_with_gc() {
- CFDateRef date = CFDateCreate(0, CFAbsoluteTimeGetCurrent()); // expected-warning 2 {{leak}}
- [[(id) date retain] release];
-}
-
-// The following test case verifies that we "stop tracking" a retained object
-// when it is passed as an argument to an implicitly defined function.
-CFAbsoluteTime f4() {
- CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
- CFDateRef date = CFDateCreate(0, t);
- CFRetain(date);
- some_implicitly_defined_function_stop_tracking(date); // no-warning
- return t;
-}
diff --git a/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes-gc.m.plist b/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes-gc.m.plist
deleted file mode 100644
index fde520d08aa..00000000000
--- a/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes-gc.m.plist
+++ /dev/null
@@ -1,1172 +0,0 @@
- <key>diagnostics</key>
- <array>
- <dict>
- <key>path</key>
- <array>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>43</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>43</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>43</integer>
- <key>col</key><integer>40</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- <key>message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>43</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>43</integer>
- <key>col</key><integer>11</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>44</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>44</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>44</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>44</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>44</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object leaked: object allocated and stored into &apos;leaked&apos; is not referenced later in this execution path and has a retain count of +1</string>
- <key>message</key>
- <string>Object leaked: object allocated and stored into &apos;leaked&apos; is not referenced later in this execution path and has a retain count of +1</string>
- </dict>
- </array>
- <key>description</key><string>Potential leak (when using garbage collection) of an object stored into &apos;leaked&apos;</string>
- <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
- <key>type</key><string>Leak of object when using garbage collection</string>
- <key>check_name</key><string>osx.cocoa.RetainCount</string>
- <!-- This hash is experimental and going to change! -->
- <key>issue_hash_content_of_line_in_context</key><string>487197d1f3d333a1fb4d7610b6d852df</string>
- <key>issue_context_kind</key><string>function</string>
- <key>issue_context</key><string>creationViaCFCreate</string>
- <key>issue_hash_function_offset</key><string>1</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>44</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </dict>
- <dict>
- <key>path</key>
- <array>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>48</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>48</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>48</integer>
- <key>col</key><integer>40</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- <key>message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>48</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>48</integer>
- <key>col</key><integer>11</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>10</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>18</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>12</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>17</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Reference count incremented. The object now has a +2 retain count</string>
- <key>message</key>
- <string>Reference count incremented. The object now has a +2 retain count</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>49</integer>
- <key>col</key><integer>10</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>27</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>21</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>26</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>In GC mode a call to &apos;CFMakeCollectable&apos; decrements an object&apos;s retain count and registers the object with the garbage collector. An object must have a 0 retain count to be garbage collected. After this call its retain count is +1</string>
- <key>message</key>
- <string>In GC mode a call to &apos;CFMakeCollectable&apos; decrements an object&apos;s retain count and registers the object with the garbage collector. An object must have a 0 retain count to be garbage collected. After this call its retain count is +1</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>50</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>27</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>21</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>26</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>In GC mode a call to &apos;NSMakeCollectable&apos; decrements an object&apos;s retain count and registers the object with the garbage collector. Since it now has a 0 retain count the object can be automatically collected by the garbage collector</string>
- <key>message</key>
- <string>In GC mode a call to &apos;NSMakeCollectable&apos; decrements an object&apos;s retain count and registers the object with the garbage collector. Since it now has a 0 retain count the object can be automatically collected by the garbage collector</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>51</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>10</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>18</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>12</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>17</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Reference count incremented. The object now has a +1 retain count. The object is not eligible for garbage collection until the retain count reaches 0 again</string>
- <key>message</key>
- <string>Reference count incremented. The object now has a +1 retain count. The object is not eligible for garbage collection until the retain count reaches 0 again</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>52</integer>
- <key>col</key><integer>10</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>53</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>53</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>53</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>53</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>53</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object leaked: object allocated and stored into &apos;leaked&apos; is not referenced later in this execution path and has a retain count of +1</string>
- <key>message</key>
- <string>Object leaked: object allocated and stored into &apos;leaked&apos; is not referenced later in this execution path and has a retain count of +1</string>
- </dict>
- </array>
- <key>description</key><string>Potential leak (when using garbage collection) of an object stored into &apos;leaked&apos;</string>
- <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
- <key>type</key><string>Leak of object when using garbage collection</string>
- <key>check_name</key><string>osx.cocoa.RetainCount</string>
- <!-- This hash is experimental and going to change! -->
- <key>issue_hash_content_of_line_in_context</key><string>4f71073d5e7f2546564c1614dfc95420</string>
- <key>issue_context_kind</key><string>function</string>
- <key>issue_context</key><string>makeCollectable</string>
- <key>issue_hash_function_offset</key><string>1</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>53</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </dict>
- <dict>
- <key>path</key>
- <array>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>57</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>57</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>57</integer>
- <key>col</key><integer>37</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Method returns an instance of NSObject with a +0 retain count</string>
- <key>message</key>
- <string>Method returns an instance of NSObject with a +0 retain count</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>57</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>57</integer>
- <key>col</key><integer>4</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>17</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>4</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>9</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>In GC mode the &apos;retain&apos; message has no effect</string>
- <key>message</key>
- <string>In GC mode the &apos;retain&apos; message has no effect</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>58</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>18</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>4</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>9</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>In GC mode the &apos;release&apos; message has no effect</string>
- <key>message</key>
- <string>In GC mode the &apos;release&apos; message has no effect</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>59</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>4</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>9</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>In GC mode an &apos;autorelease&apos; has no effect</string>
- <key>message</key>
- <string>In GC mode an &apos;autorelease&apos; has no effect</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>60</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>61</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>61</integer>
- <key>col</key><integer>11</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>61</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>61</integer>
- <key>col</key><integer>13</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>61</integer>
- <key>col</key><integer>29</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Incorrect decrement of the reference count of an object that is not owned at this point by the caller</string>
- <key>message</key>
- <string>Incorrect decrement of the reference count of an object that is not owned at this point by the caller</string>
- </dict>
- </array>
- <key>description</key><string>Incorrect decrement of the reference count of an object that is not owned at this point by the caller</string>
- <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
- <key>type</key><string>Bad release</string>
- <key>check_name</key><string>osx.cocoa.RetainCount</string>
- <!-- This hash is experimental and going to change! -->
- <key>issue_hash_content_of_line_in_context</key><string>3d18c66bf99e8cd2938e8c63c345f6ea</string>
- <key>issue_context_kind</key><string>function</string>
- <key>issue_context</key><string>retainReleaseIgnored</string>
- <key>issue_hash_function_offset</key><string>5</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>61</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </dict>
- <dict>
- <key>path</key>
- <array>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>66</integer>
- <key>col</key><integer>20</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>66</integer>
- <key>col</key><integer>20</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>66</integer>
- <key>col</key><integer>38</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- <key>message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>66</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>66</integer>
- <key>col</key><integer>4</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>10</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object returned to caller as an owning reference (single retain count transferred to caller)</string>
- <key>message</key>
- <string>Object returned to caller as an owning reference (single retain count transferred to caller)</string>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object leaked: object allocated and stored into &apos;object&apos; and returned from method &apos;getViolation&apos; is potentially leaked when using garbage collection. Callers of this method do not expect a returned object with a +1 retain count since they expect the object to be managed by the garbage collector</string>
- <key>message</key>
- <string>Object leaked: object allocated and stored into &apos;object&apos; and returned from method &apos;getViolation&apos; is potentially leaked when using garbage collection. Callers of this method do not expect a returned object with a +1 retain count since they expect the object to be managed by the garbage collector</string>
- </dict>
- </array>
- <key>description</key><string>Potential leak (when using garbage collection) of an object stored into &apos;object&apos;</string>
- <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
- <key>type</key><string>Leak of returned object when using garbage collection</string>
- <key>check_name</key><string>osx.cocoa.RetainCount</string>
- <!-- This hash is experimental and going to change! -->
- <key>issue_hash_content_of_line_in_context</key><string>d012b4dfd7d763f06cdb53f8b5708275</string>
- <key>issue_context_kind</key><string>Objective-C method</string>
- <key>issue_context</key><string>getViolation</string>
- <key>issue_hash_function_offset</key><string>1</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>67</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </dict>
- <dict>
- <key>path</key>
- <array>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>71</integer>
- <key>col</key><integer>20</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>71</integer>
- <key>col</key><integer>20</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>71</integer>
- <key>col</key><integer>38</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- <key>message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>71</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>71</integer>
- <key>col</key><integer>4</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>10</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object returned to caller as an owning reference (single retain count transferred to caller)</string>
- <key>message</key>
- <string>Object returned to caller as an owning reference (single retain count transferred to caller)</string>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>15</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object leaked: object allocated and stored into &apos;object&apos; and returned from method &apos;copyViolation&apos; is potentially leaked when using garbage collection. Callers of this method do not expect a returned object with a +1 retain count since they expect the object to be managed by the garbage collector</string>
- <key>message</key>
- <string>Object leaked: object allocated and stored into &apos;object&apos; and returned from method &apos;copyViolation&apos; is potentially leaked when using garbage collection. Callers of this method do not expect a returned object with a +1 retain count since they expect the object to be managed by the garbage collector</string>
- </dict>
- </array>
- <key>description</key><string>Potential leak (when using garbage collection) of an object stored into &apos;object&apos;</string>
- <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
- <key>type</key><string>Leak of returned object when using garbage collection</string>
- <key>check_name</key><string>osx.cocoa.RetainCount</string>
- <!-- This hash is experimental and going to change! -->
- <key>issue_hash_content_of_line_in_context</key><string>b241509266f9d666b8335e0ee2f45adf</string>
- <key>issue_context_kind</key><string>Objective-C method</string>
- <key>issue_context</key><string>copyViolation</string>
- <key>issue_hash_function_offset</key><string>1</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>72</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </dict>
- </array>
-</dict>
-</plist>
diff --git a/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist b/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist
index 62321805bf4..d102e3b45a9 100644
--- a/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist
+++ b/clang/test/Analysis/Inputs/expected-plists/retain-release-path-notes.m.plist
@@ -7,7 +7,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>47</integer>
+ <key>line</key><integer>44</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -15,12 +15,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>47</integer>
+ <key>line</key><integer>44</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>47</integer>
+ <key>line</key><integer>44</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -40,12 +40,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>47</integer>
+ <key>line</key><integer>44</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>47</integer>
+ <key>line</key><integer>44</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -53,12 +53,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>48</integer>
+ <key>line</key><integer>45</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>48</integer>
+ <key>line</key><integer>45</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -70,7 +70,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>48</integer>
+ <key>line</key><integer>45</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -78,12 +78,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>48</integer>
+ <key>line</key><integer>45</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>48</integer>
+ <key>line</key><integer>45</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -107,7 +107,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>48</integer>
+ <key>line</key><integer>45</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -119,7 +119,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>52</integer>
+ <key>line</key><integer>49</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -127,12 +127,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>52</integer>
+ <key>line</key><integer>49</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>52</integer>
+ <key>line</key><integer>49</integer>
<key>col</key><integer>40</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -152,12 +152,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>52</integer>
+ <key>line</key><integer>49</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>52</integer>
+ <key>line</key><integer>49</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -165,12 +165,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>53</integer>
+ <key>line</key><integer>50</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>53</integer>
+ <key>line</key><integer>50</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -182,7 +182,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>53</integer>
+ <key>line</key><integer>50</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -190,12 +190,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>53</integer>
+ <key>line</key><integer>50</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>53</integer>
+ <key>line</key><integer>50</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -219,7 +219,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>53</integer>
+ <key>line</key><integer>50</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -231,7 +231,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>57</integer>
+ <key>line</key><integer>54</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -239,12 +239,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>57</integer>
+ <key>line</key><integer>54</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>57</integer>
+ <key>line</key><integer>54</integer>
<key>col</key><integer>35</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -264,12 +264,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>57</integer>
+ <key>line</key><integer>54</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>57</integer>
+ <key>line</key><integer>54</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -277,12 +277,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -294,7 +294,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -302,24 +302,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -339,12 +339,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>58</integer>
+ <key>line</key><integer>55</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -352,12 +352,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -369,7 +369,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -377,24 +377,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -414,12 +414,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>59</integer>
+ <key>line</key><integer>56</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -427,12 +427,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -444,7 +444,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -452,24 +452,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -489,12 +489,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>60</integer>
+ <key>line</key><integer>57</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -502,12 +502,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>61</integer>
+ <key>line</key><integer>58</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>61</integer>
+ <key>line</key><integer>58</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -519,7 +519,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>61</integer>
+ <key>line</key><integer>58</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -527,12 +527,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>61</integer>
+ <key>line</key><integer>58</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>61</integer>
+ <key>line</key><integer>58</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -556,7 +556,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>61</integer>
+ <key>line</key><integer>58</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -568,7 +568,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>65</integer>
+ <key>line</key><integer>62</integer>
<key>col</key><integer>19</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -576,12 +576,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>65</integer>
+ <key>line</key><integer>62</integer>
<key>col</key><integer>19</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>65</integer>
+ <key>line</key><integer>62</integer>
<key>col</key><integer>31</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -601,12 +601,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>65</integer>
+ <key>line</key><integer>62</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>65</integer>
+ <key>line</key><integer>62</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -614,12 +614,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -631,7 +631,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -639,24 +639,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -676,12 +676,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>66</integer>
+ <key>line</key><integer>63</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -689,12 +689,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>67</integer>
+ <key>line</key><integer>64</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>67</integer>
+ <key>line</key><integer>64</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -706,7 +706,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>67</integer>
+ <key>line</key><integer>64</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -714,12 +714,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>67</integer>
+ <key>line</key><integer>64</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>67</integer>
+ <key>line</key><integer>64</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -743,7 +743,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>67</integer>
+ <key>line</key><integer>64</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -755,7 +755,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>71</integer>
+ <key>line</key><integer>68</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -763,12 +763,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>71</integer>
+ <key>line</key><integer>68</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>71</integer>
+ <key>line</key><integer>68</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -788,12 +788,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>71</integer>
+ <key>line</key><integer>68</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>71</integer>
+ <key>line</key><integer>68</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -801,12 +801,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -818,7 +818,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -826,24 +826,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>12</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -863,12 +863,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>72</integer>
+ <key>line</key><integer>69</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -876,12 +876,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>73</integer>
+ <key>line</key><integer>70</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>73</integer>
+ <key>line</key><integer>70</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -893,7 +893,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>73</integer>
+ <key>line</key><integer>70</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -901,12 +901,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>73</integer>
+ <key>line</key><integer>70</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>73</integer>
+ <key>line</key><integer>70</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -930,7 +930,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>73</integer>
+ <key>line</key><integer>70</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -942,7 +942,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>77</integer>
+ <key>line</key><integer>74</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -950,12 +950,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>77</integer>
+ <key>line</key><integer>74</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>77</integer>
+ <key>line</key><integer>74</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -975,12 +975,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>77</integer>
+ <key>line</key><integer>74</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>77</integer>
+ <key>line</key><integer>74</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -988,12 +988,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1005,7 +1005,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1013,24 +1013,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1050,12 +1050,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>78</integer>
+ <key>line</key><integer>75</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1063,12 +1063,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>79</integer>
+ <key>line</key><integer>76</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>79</integer>
+ <key>line</key><integer>76</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1080,7 +1080,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>79</integer>
+ <key>line</key><integer>76</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1088,12 +1088,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>79</integer>
+ <key>line</key><integer>76</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>79</integer>
+ <key>line</key><integer>76</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1117,7 +1117,7 @@
<key>issue_hash_function_offset</key><string>3</string>
<key>location</key>
<dict>
- <key>line</key><integer>79</integer>
+ <key>line</key><integer>76</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1129,7 +1129,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>83</integer>
+ <key>line</key><integer>80</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1137,12 +1137,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>83</integer>
+ <key>line</key><integer>80</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>83</integer>
+ <key>line</key><integer>80</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1162,12 +1162,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>83</integer>
+ <key>line</key><integer>80</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>83</integer>
+ <key>line</key><integer>80</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1175,12 +1175,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1192,7 +1192,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1200,24 +1200,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1237,12 +1237,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>84</integer>
+ <key>line</key><integer>81</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1250,12 +1250,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>85</integer>
+ <key>line</key><integer>82</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>85</integer>
+ <key>line</key><integer>82</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1267,7 +1267,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>85</integer>
+ <key>line</key><integer>82</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1275,12 +1275,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>85</integer>
+ <key>line</key><integer>82</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>85</integer>
+ <key>line</key><integer>82</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1304,7 +1304,7 @@
<key>issue_hash_function_offset</key><string>3</string>
<key>location</key>
<dict>
- <key>line</key><integer>85</integer>
+ <key>line</key><integer>82</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1316,7 +1316,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>89</integer>
+ <key>line</key><integer>86</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1324,12 +1324,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>89</integer>
+ <key>line</key><integer>86</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>89</integer>
+ <key>line</key><integer>86</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1349,12 +1349,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>89</integer>
+ <key>line</key><integer>86</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>89</integer>
+ <key>line</key><integer>86</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1362,12 +1362,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1379,7 +1379,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1387,24 +1387,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1424,12 +1424,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>90</integer>
+ <key>line</key><integer>87</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1437,12 +1437,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1454,7 +1454,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1462,24 +1462,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1499,12 +1499,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>91</integer>
+ <key>line</key><integer>88</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1512,12 +1512,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>92</integer>
+ <key>line</key><integer>89</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>92</integer>
+ <key>line</key><integer>89</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1529,7 +1529,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>92</integer>
+ <key>line</key><integer>89</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1537,12 +1537,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>92</integer>
+ <key>line</key><integer>89</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>92</integer>
+ <key>line</key><integer>89</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1566,7 +1566,7 @@
<key>issue_hash_function_offset</key><string>4</string>
<key>location</key>
<dict>
- <key>line</key><integer>92</integer>
+ <key>line</key><integer>89</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1578,7 +1578,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>96</integer>
+ <key>line</key><integer>93</integer>
<key>col</key><integer>19</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1586,12 +1586,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>96</integer>
+ <key>line</key><integer>93</integer>
<key>col</key><integer>19</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>96</integer>
+ <key>line</key><integer>93</integer>
<key>col</key><integer>31</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1611,12 +1611,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>96</integer>
+ <key>line</key><integer>93</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>96</integer>
+ <key>line</key><integer>93</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1624,12 +1624,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1641,7 +1641,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1649,24 +1649,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1686,12 +1686,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>97</integer>
+ <key>line</key><integer>94</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1699,12 +1699,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>98</integer>
+ <key>line</key><integer>95</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>98</integer>
+ <key>line</key><integer>95</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1716,7 +1716,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>98</integer>
+ <key>line</key><integer>95</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1724,12 +1724,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>98</integer>
+ <key>line</key><integer>95</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>98</integer>
+ <key>line</key><integer>95</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1753,7 +1753,7 @@
<key>issue_hash_function_offset</key><string>3</string>
<key>location</key>
<dict>
- <key>line</key><integer>98</integer>
+ <key>line</key><integer>95</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1765,7 +1765,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>102</integer>
+ <key>line</key><integer>99</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -1773,274 +1773,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>102</integer>
+ <key>line</key><integer>99</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>102</integer>
- <key>col</key><integer>40</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
- <key>message</key>
- <string>Call to function &apos;CFCreateSomething&apos; returns a Core Foundation object of type CFTypeRef with a +1 retain count</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>102</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>102</integer>
- <key>col</key><integer>11</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>27</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>21</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>26</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>When GC is not enabled a call to &apos;CFMakeCollectable&apos; has no effect on its argument</string>
- <key>message</key>
- <string>When GC is not enabled a call to &apos;CFMakeCollectable&apos; has no effect on its argument</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>103</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>27</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <array>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>21</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>26</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>When GC is not enabled a call to &apos;NSMakeCollectable&apos; has no effect on its argument</string>
- <key>message</key>
- <string>When GC is not enabled a call to &apos;NSMakeCollectable&apos; has no effect on its argument</string>
- </dict>
- <dict>
- <key>kind</key><string>control</string>
- <key>edges</key>
- <array>
- <dict>
- <key>start</key>
- <array>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>104</integer>
- <key>col</key><integer>19</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- <key>end</key>
- <array>
- <dict>
- <key>line</key><integer>105</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>105</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </dict>
- </array>
- </dict>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>105</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>105</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>105</integer>
- <key>col</key><integer>8</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </array>
- </array>
- <key>depth</key><integer>0</integer>
- <key>extended_message</key>
- <string>Object leaked: object allocated and stored into &apos;leaked&apos; is not referenced later in this execution path and has a retain count of +1</string>
- <key>message</key>
- <string>Object leaked: object allocated and stored into &apos;leaked&apos; is not referenced later in this execution path and has a retain count of +1</string>
- </dict>
- </array>
- <key>description</key><string>Potential leak of an object stored into &apos;leaked&apos;</string>
- <key>category</key><string>Memory (Core Foundation/Objective-C)</string>
- <key>type</key><string>Leak</string>
- <key>check_name</key><string>osx.cocoa.RetainCount</string>
- <!-- This hash is experimental and going to change! -->
- <key>issue_hash_content_of_line_in_context</key><string>3f08690fae9687c29bb23b7a7cb7995b</string>
- <key>issue_context_kind</key><string>function</string>
- <key>issue_context</key><string>makeCollectableIgnored</string>
- <key>issue_hash_function_offset</key><string>1</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>105</integer>
- <key>col</key><integer>3</integer>
- <key>file</key><integer>0</integer>
- </dict>
- </dict>
- <dict>
- <key>path</key>
- <array>
- <dict>
- <key>kind</key><string>event</string>
- <key>location</key>
- <dict>
- <key>line</key><integer>109</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <key>ranges</key>
- <array>
- <array>
- <dict>
- <key>line</key><integer>109</integer>
- <key>col</key><integer>22</integer>
- <key>file</key><integer>0</integer>
- </dict>
- <dict>
- <key>line</key><integer>109</integer>
+ <key>line</key><integer>99</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2060,12 +1798,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>109</integer>
+ <key>line</key><integer>99</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>109</integer>
+ <key>line</key><integer>99</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2073,12 +1811,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2090,7 +1828,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2098,24 +1836,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2131,7 +1869,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2139,12 +1877,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2168,7 +1906,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>110</integer>
+ <key>line</key><integer>100</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2180,7 +1918,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>114</integer>
+ <key>line</key><integer>104</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2188,12 +1926,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>114</integer>
+ <key>line</key><integer>104</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>114</integer>
+ <key>line</key><integer>104</integer>
<key>col</key><integer>40</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2213,12 +1951,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>114</integer>
+ <key>line</key><integer>104</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>114</integer>
+ <key>line</key><integer>104</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2226,12 +1964,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2243,7 +1981,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2251,24 +1989,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2284,7 +2022,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2292,12 +2030,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2321,7 +2059,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>115</integer>
+ <key>line</key><integer>105</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2333,7 +2071,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>120</integer>
+ <key>line</key><integer>110</integer>
<key>col</key><integer>20</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2341,12 +2079,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>120</integer>
+ <key>line</key><integer>110</integer>
<key>col</key><integer>20</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>120</integer>
+ <key>line</key><integer>110</integer>
<key>col</key><integer>32</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2366,12 +2104,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>120</integer>
+ <key>line</key><integer>110</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>120</integer>
+ <key>line</key><integer>110</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2379,12 +2117,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2396,7 +2134,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2404,24 +2142,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2437,7 +2175,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2445,12 +2183,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2474,7 +2212,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>121</integer>
+ <key>line</key><integer>111</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2486,7 +2224,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>125</integer>
+ <key>line</key><integer>115</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2494,12 +2232,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>125</integer>
+ <key>line</key><integer>115</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>125</integer>
+ <key>line</key><integer>115</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2519,12 +2257,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>125</integer>
+ <key>line</key><integer>115</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>125</integer>
+ <key>line</key><integer>115</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2532,12 +2270,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2549,7 +2287,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2557,24 +2295,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2590,7 +2328,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2598,12 +2336,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2627,7 +2365,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>126</integer>
+ <key>line</key><integer>116</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2639,7 +2377,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>130</integer>
+ <key>line</key><integer>120</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2647,12 +2385,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>130</integer>
+ <key>line</key><integer>120</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>130</integer>
+ <key>line</key><integer>120</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2672,12 +2410,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>130</integer>
+ <key>line</key><integer>120</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>130</integer>
+ <key>line</key><integer>120</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2685,12 +2423,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2702,7 +2440,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2710,24 +2448,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2743,7 +2481,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2751,12 +2489,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2780,7 +2518,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>131</integer>
+ <key>line</key><integer>121</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2792,7 +2530,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>135</integer>
+ <key>line</key><integer>125</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2800,12 +2538,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>135</integer>
+ <key>line</key><integer>125</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>135</integer>
+ <key>line</key><integer>125</integer>
<key>col</key><integer>32</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2825,12 +2563,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>135</integer>
+ <key>line</key><integer>125</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>135</integer>
+ <key>line</key><integer>125</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2838,12 +2576,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2855,7 +2593,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2863,24 +2601,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2896,7 +2634,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2904,12 +2642,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2933,7 +2671,7 @@
<key>issue_hash_function_offset</key><string>1</string>
<key>location</key>
<dict>
- <key>line</key><integer>136</integer>
+ <key>line</key><integer>126</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2945,7 +2683,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>140</integer>
+ <key>line</key><integer>130</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2953,12 +2691,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>140</integer>
+ <key>line</key><integer>130</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>140</integer>
+ <key>line</key><integer>130</integer>
<key>col</key><integer>32</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2978,12 +2716,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>140</integer>
+ <key>line</key><integer>130</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>140</integer>
+ <key>line</key><integer>130</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -2991,12 +2729,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3008,7 +2746,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3016,24 +2754,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3053,12 +2791,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>141</integer>
+ <key>line</key><integer>131</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3066,12 +2804,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>142</integer>
+ <key>line</key><integer>132</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>142</integer>
+ <key>line</key><integer>132</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3083,7 +2821,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>142</integer>
+ <key>line</key><integer>132</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3091,12 +2829,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>142</integer>
+ <key>line</key><integer>132</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>142</integer>
+ <key>line</key><integer>132</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3120,7 +2858,7 @@
<key>issue_hash_function_offset</key><string>3</string>
<key>location</key>
<dict>
- <key>line</key><integer>142</integer>
+ <key>line</key><integer>132</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3132,7 +2870,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>170</integer>
+ <key>line</key><integer>160</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3140,12 +2878,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>170</integer>
+ <key>line</key><integer>160</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>170</integer>
+ <key>line</key><integer>160</integer>
<key>col</key><integer>16</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3165,12 +2903,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>170</integer>
+ <key>line</key><integer>160</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>170</integer>
+ <key>line</key><integer>160</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3178,12 +2916,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>171</integer>
+ <key>line</key><integer>161</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>171</integer>
+ <key>line</key><integer>161</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3195,7 +2933,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>171</integer>
+ <key>line</key><integer>161</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3203,12 +2941,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>171</integer>
+ <key>line</key><integer>161</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>171</integer>
+ <key>line</key><integer>161</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3232,7 +2970,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>171</integer>
+ <key>line</key><integer>161</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3244,7 +2982,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>175</integer>
+ <key>line</key><integer>165</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3252,12 +2990,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>175</integer>
+ <key>line</key><integer>165</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>175</integer>
+ <key>line</key><integer>165</integer>
<key>col</key><integer>18</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3277,12 +3015,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>175</integer>
+ <key>line</key><integer>165</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>175</integer>
+ <key>line</key><integer>165</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3290,12 +3028,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>176</integer>
+ <key>line</key><integer>166</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>176</integer>
+ <key>line</key><integer>166</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3307,7 +3045,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>176</integer>
+ <key>line</key><integer>166</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3315,12 +3053,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>176</integer>
+ <key>line</key><integer>166</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>176</integer>
+ <key>line</key><integer>166</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3344,7 +3082,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>176</integer>
+ <key>line</key><integer>166</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3356,7 +3094,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>180</integer>
+ <key>line</key><integer>170</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3364,12 +3102,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>180</integer>
+ <key>line</key><integer>170</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>180</integer>
+ <key>line</key><integer>170</integer>
<key>col</key><integer>20</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3389,12 +3127,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>180</integer>
+ <key>line</key><integer>170</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>180</integer>
+ <key>line</key><integer>170</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3402,12 +3140,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>181</integer>
+ <key>line</key><integer>171</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>181</integer>
+ <key>line</key><integer>171</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3419,7 +3157,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>181</integer>
+ <key>line</key><integer>171</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3427,12 +3165,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>181</integer>
+ <key>line</key><integer>171</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>181</integer>
+ <key>line</key><integer>171</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3456,7 +3194,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>181</integer>
+ <key>line</key><integer>171</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3468,7 +3206,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>185</integer>
+ <key>line</key><integer>175</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3476,12 +3214,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>185</integer>
+ <key>line</key><integer>175</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>185</integer>
+ <key>line</key><integer>175</integer>
<key>col</key><integer>20</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3501,12 +3239,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>185</integer>
+ <key>line</key><integer>175</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>185</integer>
+ <key>line</key><integer>175</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3514,12 +3252,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>186</integer>
+ <key>line</key><integer>176</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>186</integer>
+ <key>line</key><integer>176</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3531,7 +3269,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>186</integer>
+ <key>line</key><integer>176</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3539,12 +3277,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>186</integer>
+ <key>line</key><integer>176</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>186</integer>
+ <key>line</key><integer>176</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3568,7 +3306,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>186</integer>
+ <key>line</key><integer>176</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3580,7 +3318,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>190</integer>
+ <key>line</key><integer>180</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3588,12 +3326,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>190</integer>
+ <key>line</key><integer>180</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>190</integer>
+ <key>line</key><integer>180</integer>
<key>col</key><integer>27</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3613,12 +3351,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>190</integer>
+ <key>line</key><integer>180</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>190</integer>
+ <key>line</key><integer>180</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3626,12 +3364,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>191</integer>
+ <key>line</key><integer>181</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>191</integer>
+ <key>line</key><integer>181</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3643,7 +3381,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>191</integer>
+ <key>line</key><integer>181</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3651,12 +3389,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>191</integer>
+ <key>line</key><integer>181</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>191</integer>
+ <key>line</key><integer>181</integer>
<key>col</key><integer>9</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3680,7 +3418,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>191</integer>
+ <key>line</key><integer>181</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3696,12 +3434,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3709,12 +3447,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3726,7 +3464,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3734,12 +3472,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>23</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3755,7 +3493,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3763,12 +3501,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>30</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3784,7 +3522,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>206</integer>
+ <key>line</key><integer>196</integer>
<key>col</key><integer>1</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3802,12 +3540,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>206</integer>
+ <key>line</key><integer>196</integer>
<key>col</key><integer>1</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>206</integer>
+ <key>line</key><integer>196</integer>
<key>col</key><integer>1</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3815,12 +3553,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3836,12 +3574,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3849,12 +3587,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>7</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3866,7 +3604,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>7</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3874,12 +3612,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>7</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3899,12 +3637,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>7</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>207</integer>
+ <key>line</key><integer>197</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3912,12 +3650,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>209</integer>
+ <key>line</key><integer>199</integer>
<key>col</key><integer>5</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>209</integer>
+ <key>line</key><integer>199</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3929,7 +3667,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3937,12 +3675,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>30</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3962,12 +3700,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3975,12 +3713,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -3992,7 +3730,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4000,12 +3738,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>6</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4029,7 +3767,7 @@
<key>issue_hash_function_offset</key><string>2</string>
<key>location</key>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4045,12 +3783,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>226</integer>
+ <key>line</key><integer>216</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4058,12 +3796,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4079,12 +3817,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4092,12 +3830,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4109,7 +3847,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4117,12 +3855,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>30</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4138,7 +3876,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>214</integer>
+ <key>line</key><integer>204</integer>
<key>col</key><integer>1</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4156,12 +3894,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>214</integer>
+ <key>line</key><integer>204</integer>
<key>col</key><integer>1</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>214</integer>
+ <key>line</key><integer>204</integer>
<key>col</key><integer>1</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4169,12 +3907,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>6</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4186,7 +3924,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4194,12 +3932,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>21</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4219,12 +3957,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>215</integer>
+ <key>line</key><integer>205</integer>
<key>col</key><integer>6</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4232,12 +3970,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>216</integer>
+ <key>line</key><integer>206</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>216</integer>
+ <key>line</key><integer>206</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4249,7 +3987,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4257,12 +3995,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>30</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4282,12 +4020,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>10</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4295,12 +4033,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4316,12 +4054,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>232</integer>
+ <key>line</key><integer>222</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4329,12 +4067,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4350,12 +4088,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4363,12 +4101,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4380,7 +4118,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4388,12 +4126,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>23</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4417,7 +4155,7 @@
<key>issue_hash_function_offset</key><string>8</string>
<key>location</key>
<dict>
- <key>line</key><integer>237</integer>
+ <key>line</key><integer>227</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4429,7 +4167,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>247</integer>
+ <key>line</key><integer>237</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4437,12 +4175,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>247</integer>
+ <key>line</key><integer>237</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>247</integer>
+ <key>line</key><integer>237</integer>
<key>col</key><integer>40</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4462,12 +4200,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>247</integer>
+ <key>line</key><integer>237</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>247</integer>
+ <key>line</key><integer>237</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4475,12 +4213,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4492,7 +4230,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4500,24 +4238,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>23</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4537,12 +4275,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>248</integer>
+ <key>line</key><integer>238</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4550,12 +4288,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4567,7 +4305,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4575,24 +4313,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>23</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4612,12 +4350,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>249</integer>
+ <key>line</key><integer>239</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4625,12 +4363,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>250</integer>
+ <key>line</key><integer>240</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>250</integer>
+ <key>line</key><integer>240</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4642,7 +4380,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>250</integer>
+ <key>line</key><integer>240</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4650,12 +4388,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>250</integer>
+ <key>line</key><integer>240</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>250</integer>
+ <key>line</key><integer>240</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4679,7 +4417,7 @@
<key>issue_hash_function_offset</key><string>4</string>
<key>location</key>
<dict>
- <key>line</key><integer>250</integer>
+ <key>line</key><integer>240</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4691,7 +4429,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>254</integer>
+ <key>line</key><integer>244</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4699,12 +4437,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>254</integer>
+ <key>line</key><integer>244</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>254</integer>
+ <key>line</key><integer>244</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4724,12 +4462,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>254</integer>
+ <key>line</key><integer>244</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>254</integer>
+ <key>line</key><integer>244</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4737,12 +4475,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4754,7 +4492,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4762,24 +4500,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>23</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4799,12 +4537,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>255</integer>
+ <key>line</key><integer>245</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4812,12 +4550,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>256</integer>
+ <key>line</key><integer>246</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>256</integer>
+ <key>line</key><integer>246</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4829,7 +4567,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>256</integer>
+ <key>line</key><integer>246</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4837,12 +4575,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>256</integer>
+ <key>line</key><integer>246</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>256</integer>
+ <key>line</key><integer>246</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4866,7 +4604,7 @@
<key>issue_hash_function_offset</key><string>3</string>
<key>location</key>
<dict>
- <key>line</key><integer>256</integer>
+ <key>line</key><integer>246</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4878,7 +4616,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>260</integer>
+ <key>line</key><integer>250</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4886,12 +4624,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>260</integer>
+ <key>line</key><integer>250</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>260</integer>
+ <key>line</key><integer>250</integer>
<key>col</key><integer>37</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4911,12 +4649,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>260</integer>
+ <key>line</key><integer>250</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>260</integer>
+ <key>line</key><integer>250</integer>
<key>col</key><integer>11</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4924,12 +4662,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4941,7 +4679,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4949,24 +4687,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>23</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>17</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>22</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4986,12 +4724,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>261</integer>
+ <key>line</key><integer>251</integer>
<key>col</key><integer>15</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -4999,12 +4737,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5016,7 +4754,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5024,24 +4762,24 @@
<array>
<array>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>26</integer>
<key>file</key><integer>0</integer>
</dict>
</array>
<array>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>4</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>13</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5061,12 +4799,12 @@
<key>start</key>
<array>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>262</integer>
+ <key>line</key><integer>252</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5074,12 +4812,12 @@
<key>end</key>
<array>
<dict>
- <key>line</key><integer>263</integer>
+ <key>line</key><integer>253</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>263</integer>
+ <key>line</key><integer>253</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5091,7 +4829,7 @@
<key>kind</key><string>event</string>
<key>location</key>
<dict>
- <key>line</key><integer>263</integer>
+ <key>line</key><integer>253</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5099,12 +4837,12 @@
<array>
<array>
<dict>
- <key>line</key><integer>263</integer>
+ <key>line</key><integer>253</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
<dict>
- <key>line</key><integer>263</integer>
+ <key>line</key><integer>253</integer>
<key>col</key><integer>8</integer>
<key>file</key><integer>0</integer>
</dict>
@@ -5128,11 +4866,11 @@
<key>issue_hash_function_offset</key><string>4</string>
<key>location</key>
<dict>
- <key>line</key><integer>263</integer>
+ <key>line</key><integer>253</integer>
<key>col</key><integer>3</integer>
<key>file</key><integer>0</integer>
</dict>
</dict>
</array>
</dict>
-</plist>
+</plist> \ No newline at end of file
diff --git a/clang/test/Analysis/PR2599.m b/clang/test/Analysis/PR2599.m
deleted file mode 100644
index 1c2270e6aa6..00000000000
--- a/clang/test/Analysis/PR2599.m
+++ /dev/null
@@ -1,63 +0,0 @@
-// RUN: %clang_analyze_cc1 -triple %itanium_abi_triple -analyzer-checker=core,osx.cocoa.RetainCount,alpha.core -analyzer-store=region -fobjc-gc -verify %s
-
-typedef const void * CFTypeRef;
-typedef const struct __CFString * CFStringRef;
-typedef const struct __CFAllocator * CFAllocatorRef;
-typedef const struct __CFDictionary * CFDictionaryRef;
-CFTypeRef CFMakeCollectable(CFTypeRef cf) ;
-extern CFStringRef CFStringCreateWithFormat(CFAllocatorRef alloc, CFDictionaryRef formatOptions, CFStringRef format, ...);
-typedef signed char BOOL;
-typedef unsigned int NSUInteger;
-typedef struct _NSZone NSZone;
-@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
-@protocol NSObject
-- (BOOL)isEqual:(id)object;
-- (id)autorelease;
-@end
-@protocol NSCopying
-- (id)copyWithZone:(NSZone *)zone;
-@end @protocol NSMutableCopying
-- (id)mutableCopyWithZone:(NSZone *)zone;
-@end
-@protocol
-NSCoding
-- (void)encodeWithCoder:(NSCoder *)aCoder;
-@end
-@interface NSObject <NSObject> {}
-- (id)init;
-+ (id)alloc;
-@end
-enum { NSASCIIStringEncoding = 1, NSNEXTSTEPStringEncoding = 2, NSJapaneseEUCStringEncoding = 3, NSUTF8StringEncoding = 4, NSISOLatin1StringEncoding = 5, NSSymbolStringEncoding = 6, NSNonLossyASCIIStringEncoding = 7, NSShiftJISStringEncoding = 8, NSISOLatin2StringEncoding = 9, NSUnicodeStringEncoding = 10, NSWindowsCP1251StringEncoding = 11, NSWindowsCP1252StringEncoding = 12, NSWindowsCP1253StringEncoding = 13, NSWindowsCP1254StringEncoding = 14, NSWindowsCP1250StringEncoding = 15, NSISO2022JPStringEncoding = 21, NSMacOSRomanStringEncoding = 30, NSUTF16StringEncoding = NSUnicodeStringEncoding, NSUTF16BigEndianStringEncoding = 0x90000100, NSUTF16LittleEndianStringEncoding = 0x94000100, NSUTF32StringEncoding = 0x8c000100, NSUTF32BigEndianStringEncoding = 0x98000100, NSUTF32LittleEndianStringEncoding = 0x9c000100 };
-typedef NSUInteger NSStringEncoding;
-@interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding>
-- (NSUInteger)length;
-- (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding freeWhenDone:(BOOL)freeBuffer;
-@end
-@interface NSAutoreleasePool : NSObject {}
-- (void)drain;
-@end
-extern NSString * const NSXMLParserErrorDomain ;
-
-// The actual test case. UTIL_AUTORELEASE_CF_AS_ID is a macro that doesn't
-// actually do what it was intended to.
-
-#define NSSTRINGWRAPPER(bytes,len) \
- [[[NSString alloc] initWithBytesNoCopy: (void*)(bytes) length: (len) encoding: NSUTF8StringEncoding freeWhenDone: (BOOL)0] autorelease]
-
-#define UTIL_AUTORELEASE_CF_AS_ID(cf) ( (((void*)0) == (cf)) ? ((void*)0) : [(id) CFMakeCollectable( (CFTypeRef) cf) autorelease] )
-
-#define UTIL_AUTORELEASE_CF_AS_ID_WITHOUT_TEST(cf) ( [(id) CFMakeCollectable( (CFTypeRef) cf) autorelease] )
-
-static char *lorem = "fooBarBaz";
-
-void NSLog(NSString *, ...);
-
-int main (int argc, const char * argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- NSString *tmp1 = NSSTRINGWRAPPER(lorem, 6); // no-warning
- NSString *tmp2 = UTIL_AUTORELEASE_CF_AS_ID( CFStringCreateWithFormat(((void*)0), ((void*)0), ((CFStringRef) __builtin___CFStringMakeConstantString ("" "lorem: %@" "")), tmp1) ); // expected-warning 2 {{leak}}
- NSString *tmp3 = UTIL_AUTORELEASE_CF_AS_ID_WITHOUT_TEST( CFStringCreateWithFormat(((void*)0), ((void*)0), ((CFStringRef) __builtin___CFStringMakeConstantString ("" "lorem: %@" "")), tmp1) );
- NSLog(@"tmp2: %@ tmp3: %@", tmp2, tmp3);
- [pool drain];
- return 0;
-}
diff --git a/clang/test/Analysis/retain-release-gc-only.m b/clang/test/Analysis/retain-release-gc-only.m
deleted file mode 100644
index 6305942ac20..00000000000
--- a/clang/test/Analysis/retain-release-gc-only.m
+++ /dev/null
@@ -1,434 +0,0 @@
-// RUN: %clang_analyze_cc1 -triple %itanium_abi_triple -analyzer-checker=core,osx.cocoa.RetainCount,osx.cocoa.NSAutoreleasePool -analyzer-store=region -fobjc-gc-only -fblocks -verify -Wno-objc-root-class %s
-
-//===----------------------------------------------------------------------===//
-// Header stuff.
-//===----------------------------------------------------------------------===//
-
-typedef unsigned int __darwin_natural_t;
-typedef unsigned long uintptr_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-typedef unsigned int UInt32;
-typedef signed long CFIndex;
-typedef struct {
- CFIndex location;
- CFIndex length;
-} CFRange;
-static __inline__ __attribute__((always_inline)) CFRange CFRangeMake(CFIndex loc, CFIndex len) {
- CFRange range;
- range.location = loc;
- range.length = len;
- return range;
-}
-typedef const void * CFTypeRef;
-typedef const struct __CFString * CFStringRef;
-typedef const struct __CFAllocator * CFAllocatorRef;
-extern const CFAllocatorRef kCFAllocatorDefault;
-extern CFTypeRef CFRetain(CFTypeRef cf);
-extern void CFRelease(CFTypeRef cf);
-typedef struct {
-}
-CFArrayCallBacks;
-extern const CFArrayCallBacks kCFTypeArrayCallBacks;
-typedef const struct __CFArray * CFArrayRef;
-typedef struct __CFArray * CFMutableArrayRef;
-extern CFMutableArrayRef CFArrayCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFArrayCallBacks *callBacks);
-extern const void *CFArrayGetValueAtIndex(CFArrayRef theArray, CFIndex idx);
-extern void CFArrayAppendValue(CFMutableArrayRef theArray, const void *value);
-typedef struct {
-}
-CFDictionaryKeyCallBacks;
-extern const CFDictionaryKeyCallBacks kCFTypeDictionaryKeyCallBacks;
-typedef struct {
-}
-CFDictionaryValueCallBacks;
-extern const CFDictionaryValueCallBacks kCFTypeDictionaryValueCallBacks;
-typedef const struct __CFDictionary * CFDictionaryRef;
-typedef struct __CFDictionary * CFMutableDictionaryRef;
-extern CFMutableDictionaryRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks);
-typedef UInt32 CFStringEncoding;
-enum {
-kCFStringEncodingMacRoman = 0, kCFStringEncodingWindowsLatin1 = 0x0500, kCFStringEncodingISOLatin1 = 0x0201, kCFStringEncodingNextStepLatin = 0x0B01, kCFStringEncodingASCII = 0x0600, kCFStringEncodingUnicode = 0x0100, kCFStringEncodingUTF8 = 0x08000100, kCFStringEncodingNonLossyASCII = 0x0BFF , kCFStringEncodingUTF16 = 0x0100, kCFStringEncodingUTF16BE = 0x10000100, kCFStringEncodingUTF16LE = 0x14000100, kCFStringEncodingUTF32 = 0x0c000100, kCFStringEncodingUTF32BE = 0x18000100, kCFStringEncodingUTF32LE = 0x1c000100 };
-extern CFStringRef CFStringCreateWithCString(CFAllocatorRef alloc, const char *cStr, CFStringEncoding encoding);
-typedef double CFTimeInterval;
-typedef CFTimeInterval CFAbsoluteTime;
-extern CFAbsoluteTime CFAbsoluteTimeGetCurrent(void);
-typedef const struct __CFDate * CFDateRef;
-extern CFDateRef CFDateCreate(CFAllocatorRef allocator, CFAbsoluteTime at);
-extern CFAbsoluteTime CFDateGetAbsoluteTime(CFDateRef theDate);
-typedef __darwin_natural_t natural_t;
-typedef natural_t mach_port_name_t;
-typedef mach_port_name_t mach_port_t;
-typedef int kern_return_t;
-typedef kern_return_t mach_error_t;
-enum {
-kCFNumberSInt8Type = 1, kCFNumberSInt16Type = 2, kCFNumberSInt32Type = 3, kCFNumberSInt64Type = 4, kCFNumberFloat32Type = 5, kCFNumberFloat64Type = 6, kCFNumberCharType = 7, kCFNumberShortType = 8, kCFNumberIntType = 9, kCFNumberLongType = 10, kCFNumberLongLongType = 11, kCFNumberFloatType = 12, kCFNumberDoubleType = 13, kCFNumberCFIndexType = 14, kCFNumberNSIntegerType = 15, kCFNumberCGFloatType = 16, kCFNumberMaxType = 16 };
-typedef CFIndex CFNumberType;
-typedef const struct __CFNumber * CFNumberRef;
-extern CFNumberRef CFNumberCreate(CFAllocatorRef allocator, CFNumberType theType, const void *valuePtr);
-typedef const struct __CFAttributedString *CFAttributedStringRef;
-typedef struct __CFAttributedString *CFMutableAttributedStringRef;
-extern CFAttributedStringRef CFAttributedStringCreate(CFAllocatorRef alloc, CFStringRef str, CFDictionaryRef attributes) ;
-extern CFMutableAttributedStringRef CFAttributedStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLength, CFAttributedStringRef aStr) ;
-extern void CFAttributedStringSetAttribute(CFMutableAttributedStringRef aStr, CFRange range, CFStringRef attrName, CFTypeRef value) ;
-typedef signed char BOOL;
-typedef unsigned long NSUInteger;
-@class NSString, Protocol;
-extern void NSLog(NSString *format, ...) __attribute__((format(__NSString__, 1, 2)));
-typedef struct _NSZone NSZone;
-@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
-@protocol NSObject
-- (BOOL)isEqual:(id)object;
-- (id)retain;
-- (oneway void)release;
-- (id)autorelease;
-- (Class)class;
-@end @protocol NSCopying - (id)copyWithZone:(NSZone *)zone;
-@end @protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone;
-@end @protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder;
-@end
-@interface NSObject <NSObject> {}
-+ (id)allocWithZone:(NSZone *)zone;
-+ (id)alloc;
-- (void)dealloc;
-- (oneway void)release;
-- (id)copy;
-@end
-@interface NSObject (NSCoderMethods)
-- (id)awakeAfterUsingCoder:(NSCoder *)aDecoder;
-@end
-extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
-typedef struct {
-}
-NSFastEnumerationState;
-@protocol NSFastEnumeration - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
-@end @class NSString, NSDictionary;
-@interface NSValue : NSObject <NSCopying, NSCoding> - (void)getValue:(void *)value;
-@end @interface NSNumber : NSValue - (char)charValue;
-- (id)initWithInt:(int)value;
-@end @class NSString;
-@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>
-- (NSUInteger)count;
-@end
-@interface NSArray (NSArrayCreation)
-+ (id)array;
-+ (id)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt;
-@end
- @interface NSAutoreleasePool : NSObject {
-}
-- (void)drain;
-- (id)init;
-@end extern NSString * const NSBundleDidLoadNotification;
-typedef double NSTimeInterval;
-@interface NSDate : NSObject <NSCopying, NSCoding> - (NSTimeInterval)timeIntervalSinceReferenceDate;
-@end typedef unsigned short unichar;
-@interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding> - (NSUInteger)length;
-- ( const char *)UTF8String;
-- (id)initWithUTF8String:(const char *)nullTerminatedCString;
-+ (id)stringWithUTF8String:(const char *)nullTerminatedCString;
-@end @class NSString, NSURL, NSError;
-@interface NSData : NSObject <NSCopying, NSMutableCopying, NSCoding> - (NSUInteger)length;
-+ (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length;
-+ (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;
-@end @class NSLocale, NSDate, NSCalendar, NSTimeZone, NSError, NSArray, NSMutableDictionary;
-@interface NSDictionary : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration> - (NSUInteger)count;
-@end @interface NSMutableDictionary : NSDictionary - (void)removeObjectForKey:(id)aKey;
-- (void)setObject:(id)anObject forKey:(id)aKey;
-@end @interface NSMutableDictionary (NSMutableDictionaryCreation) + (id)dictionaryWithCapacity:(NSUInteger)numItems;
-@end typedef double CGFloat;
-struct CGSize {
-};
-typedef struct CGSize CGSize;
-struct CGRect {
-};
-typedef struct CGRect CGRect;
-typedef mach_port_t io_object_t;
-typedef char io_name_t[128];
-typedef io_object_t io_iterator_t;
-typedef io_object_t io_service_t;
-typedef struct IONotificationPort * IONotificationPortRef;
-typedef void (*IOServiceMatchingCallback)( void * refcon, io_iterator_t iterator );
-io_service_t IOServiceGetMatchingService( mach_port_t masterPort, CFDictionaryRef matching );
-kern_return_t IOServiceGetMatchingServices( mach_port_t masterPort, CFDictionaryRef matching, io_iterator_t * existing );
-kern_return_t IOServiceAddNotification( mach_port_t masterPort, const io_name_t notificationType, CFDictionaryRef matching, mach_port_t wakePort, uintptr_t reference, io_iterator_t * notification ) __attribute__((deprecated));
-kern_return_t IOServiceAddMatchingNotification( IONotificationPortRef notifyPort, const io_name_t notificationType, CFDictionaryRef matching, IOServiceMatchingCallback callback, void * refCon, io_iterator_t * notification );
-CFMutableDictionaryRef IOServiceMatching( const char * name );
-CFMutableDictionaryRef IOServiceNameMatching( const char * name );
-CFMutableDictionaryRef IOBSDNameMatching( mach_port_t masterPort, uint32_t options, const char * bsdName );
-CFMutableDictionaryRef IOOpenFirmwarePathMatching( mach_port_t masterPort, uint32_t options, const char * path );
-CFMutableDictionaryRef IORegistryEntryIDMatching( uint64_t entryID );
-typedef struct __DASession * DASessionRef;
-extern DASessionRef DASessionCreate( CFAllocatorRef allocator );
-typedef struct __DADisk * DADiskRef;
-extern DADiskRef DADiskCreateFromBSDName( CFAllocatorRef allocator, DASessionRef session, const char * name );
-extern DADiskRef DADiskCreateFromIOMedia( CFAllocatorRef allocator, DASessionRef session, io_service_t media );
-extern CFDictionaryRef DADiskCopyDescription( DADiskRef disk );
-extern DADiskRef DADiskCopyWholeDisk( DADiskRef disk );
-@interface NSTask : NSObject - (id)init;
-@end typedef struct CGColorSpace *CGColorSpaceRef;
-typedef struct CGImage *CGImageRef;
-typedef struct CGLayer *CGLayerRef;
-@interface NSResponder : NSObject <NSCoding> {
-}
-@end @protocol NSAnimatablePropertyContainer - (id)animator;
-@end extern NSString *NSAnimationTriggerOrderIn ;
-@interface NSView : NSResponder <NSAnimatablePropertyContainer> {
-}
-@end @protocol NSValidatedUserInterfaceItem - (SEL)action;
-@end @protocol NSUserInterfaceValidations - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem;
-@end @class NSDate, NSDictionary, NSError, NSException, NSNotification;
-@interface NSApplication : NSResponder <NSUserInterfaceValidations> {
-}
-@end enum {
-NSTerminateCancel = 0, NSTerminateNow = 1, NSTerminateLater = 2 };
-typedef NSUInteger NSApplicationTerminateReply;
-@protocol NSApplicationDelegate <NSObject> @optional - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
-@end @class NSAttributedString, NSEvent, NSFont, NSFormatter, NSImage, NSMenu, NSText, NSView, NSTextView;
-@interface NSCell : NSObject <NSCopying, NSCoding> {
-}
-@end @class NSTextField, NSPanel, NSArray, NSWindow, NSImage, NSButton, NSError;
-typedef struct {
-}
-CVTimeStamp;
-@interface CIImage : NSObject <NSCoding, NSCopying> {
-}
-typedef int CIFormat;
-@end enum {
-kDAReturnSuccess = 0, kDAReturnError = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x01, kDAReturnBusy = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x02, kDAReturnBadArgument = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x03, kDAReturnExclusiveAccess = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x04, kDAReturnNoResources = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x05, kDAReturnNotFound = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x06, kDAReturnNotMounted = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x07, kDAReturnNotPermitted = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x08, kDAReturnNotPrivileged = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x09, kDAReturnNotReady = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x0A, kDAReturnNotWritable = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x0B, kDAReturnUnsupported = (((0x3eU)&0x3f)<<26) | (((0x368)&0xfff)<<14) | 0x0C };
-typedef mach_error_t DAReturn;
-typedef const struct __DADissenter * DADissenterRef;
-extern DADissenterRef DADissenterCreate( CFAllocatorRef allocator, DAReturn status, CFStringRef string );
-@interface CIContext: NSObject {
-}
-- (CGImageRef)createCGImage:(CIImage *)im fromRect:(CGRect)r;
-- (CGImageRef)createCGImage:(CIImage *)im fromRect:(CGRect)r format:(CIFormat)f colorSpace:(CGColorSpaceRef)cs;
-- (CGLayerRef)createCGLayerWithSize:(CGSize)size info:(CFDictionaryRef)d;
-@end extern NSString* const QCRendererEventKey;
-@protocol QCCompositionRenderer - (NSDictionary*) attributes;
-@end @interface QCRenderer : NSObject <QCCompositionRenderer> {
-}
-- (id) createSnapshotImageOfType:(NSString*)type;
-@end extern NSString* const QCViewDidStartRenderingNotification;
-@interface QCView : NSView <QCCompositionRenderer> {
-}
-- (id) createSnapshotImageOfType:(NSString*)type;
-@end enum {
-ICEXIFOrientation1 = 1, ICEXIFOrientation2 = 2, ICEXIFOrientation3 = 3, ICEXIFOrientation4 = 4, ICEXIFOrientation5 = 5, ICEXIFOrientation6 = 6, ICEXIFOrientation7 = 7, ICEXIFOrientation8 = 8, };
-@class ICDevice;
-@protocol ICDeviceDelegate <NSObject> @required - (void)didRemoveDevice:(ICDevice*)device;
-@end extern NSString *const ICScannerStatusWarmingUp;
-@class ICScannerDevice;
-@protocol ICScannerDeviceDelegate <ICDeviceDelegate> @optional - (void)scannerDeviceDidBecomeAvailable:(ICScannerDevice*)scanner;
-@end
-CFTypeRef CFMakeCollectable(CFTypeRef cf) ;
-
-static __inline__ __attribute__((always_inline)) id NSMakeCollectable(CFTypeRef
-cf) {
- return cf ? (id)CFMakeCollectable(cf) : ((void*)0);
-}
-
-//===----------------------------------------------------------------------===//
-// Test cases.
-//===----------------------------------------------------------------------===//
-
-void f1() {
- CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // no-warning
- id x = [(id) A autorelease];
- CFRelease((CFMutableArrayRef) x);
-}
-
-void f2() {
- CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // expected-warning{{leak}}
- id x = [(id) A retain];
- [x release];
- [x release];
-}
-
-void f3() {
- CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // expected-warning{{leak}}
- CFMakeCollectable(A);
- CFRetain(A);
-}
-
-void f3b() {
- CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // no-warning
- CFMakeCollectable(A);
-}
-
-
-void f4() {
- CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // expected-warning{{leak}}
- NSMakeCollectable(A);
- CFRetain(A);
-}
-
-void f4b() {
- CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // no-warning
- NSMakeCollectable(A);
-}
-
-void f5() {
- id x = [NSMakeCollectable(CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks)) autorelease]; // no-warning
-}
-
-void f5b() {
- id x = [(id) CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks) autorelease]; // expected-warning{{leak}}
-}
-
-// Test return of non-owned objects in contexts where an owned object
-// is expected.
-@interface TestReturnNotOwnedWhenExpectedOwned
-- (NSString*)newString;
-- (CFMutableArrayRef)newArray;
-@end
-
-@implementation TestReturnNotOwnedWhenExpectedOwned
-- (NSString*)newString {
- NSString *s = [NSString stringWithUTF8String:"hello"]; // expected-warning{{Potential leak (when using garbage collection) of an object}}
- CFRetain(s);
- return s;
-}
-- (CFMutableArrayRef)newArray{
- return CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // no-warning
-}
-@end
-
-//===----------------------------------------------------------------------===//
-// <rdar://problem/6948053> False positive: object substitution during -init*
-// methods warns about returning +0 when using -fobjc-gc-only
-//===----------------------------------------------------------------------===//
-
-@interface MyClassRdar6948053 : NSObject
-- (id) init;
-+ (id) shared;
-@end
-
-@implementation MyClassRdar6948053
-+(id) shared {
- return (id) 0;
-}
-- (id) init
-{
- Class myClass = [self class];
- [self release];
- return [[myClass shared] retain]; // no-warning
-}
-@end
-
-//===----------------------------------------------------------------------===//
-// <rdar://problem/7174400> 'ciContext createCGImage:outputImage fromRect:' returns a retained CF object (not GC'ed)//===----------------------------------------------------------------------===//
-//===----------------------------------------------------------------------===//
-
-void rdar_7174400(QCView *view, QCRenderer *renderer, CIContext *context,
- NSString *str, CIImage *img, CGRect rect,
- CIFormat form, CGColorSpaceRef cs) {
- [view createSnapshotImageOfType:str]; // no-warning
- [renderer createSnapshotImageOfType:str]; // no-warning
- [context createCGImage:img fromRect:rect]; // expected-warning{{leak}}
- [context createCGImage:img fromRect:rect format:form colorSpace:cs]; // expected-warning{{leak}}
-}
-
-//===----------------------------------------------------------------------===//
-// <rdar://problem/6250216> Warn against using -[NSAutoreleasePool release] in
-// GC mode
-//===----------------------------------------------------------------------===//
-
-void rdar_6250216(void) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [pool release]; // expected-warning{{Use -drain instead of -release when using NSAutoreleasePool and garbage collection}}
-}
-
-
-//===----------------------------------------------------------------------===//
-// <rdar://problem/7407273> Don't crash when analyzing messages sent to blocks
-//===----------------------------------------------------------------------===//
-
-@class RDar7407273;
-typedef void (^RDar7407273Block)(RDar7407273 *operation);
-void rdar7407273(RDar7407273Block b) {
- [b copy];
-}
-
-//===----------------------------------------------------------------------===//
-// Tests of ownership attributes.
-//===----------------------------------------------------------------------===//
-
-@interface TestOwnershipAttr : NSObject
-- (NSString*) returnsAnOwnedString __attribute__((ns_returns_retained));
-- (NSString*) returnsAnOwnedCFString __attribute__((cf_returns_retained));
-@end
-
-void test_attr_1(TestOwnershipAttr *X) {
- NSString *str = [X returnsAnOwnedString]; // no-warning
-}
-
-void test_attr_1b(TestOwnershipAttr *X) {
- NSString *str = [X returnsAnOwnedCFString]; // expected-warning{{leak}}
-}
-
-@interface MyClassTestCFAttr : NSObject {}
-- (NSDate*) returnsCFRetained __attribute__((cf_returns_retained));
-- (NSDate*) alsoReturnsRetained;
-- (NSDate*) returnsNSRetained __attribute__((ns_returns_retained));
-@end
-
-__attribute__((cf_returns_retained))
-CFDateRef returnsRetainedCFDate() {
- return CFDateCreate(0, CFAbsoluteTimeGetCurrent());
-}
-
-@implementation MyClassTestCFAttr
-- (NSDate*) returnsCFRetained {
- return (NSDate*) returnsRetainedCFDate(); // No leak.
-}
-
-- (NSDate*) alsoReturnsRetained {
- return (NSDate*) returnsRetainedCFDate(); // expected-warning{{leak}}
-}
-
-- (NSDate*) returnsNSRetained {
- return (NSDate*) returnsRetainedCFDate(); // expected-warning{{leak}}
-}
-@end
-
-
-#if __has_feature(attribute_ns_consumed)
-#define NS_CONSUMED __attribute__((ns_consumed))
-#endif
-#if __has_feature(attribute_cf_consumed)
-#define CF_CONSUMED __attribute__((cf_consumed))
-#endif
-
-void consumeAndStopTracking(id NS_CONSUMED obj, void (^callback)(void));
-void CFConsumeAndStopTracking(CFTypeRef CF_CONSUMED obj, void (^callback)(void));
-
-void testConsumeAndStopTracking() {
- id retained = [@[] retain]; // +0, GC
- consumeAndStopTracking(retained, ^{}); // no-warning
-
- id doubleRetained = [[@[] retain] retain]; // +0, GC
- consumeAndStopTracking(doubleRetained, ^{
- [doubleRetained release];
- }); // no-warning
-
- id unretained = @[]; // +0
- consumeAndStopTracking(unretained, ^{}); // no-warning, GC
-}
-
-void testCFConsumeAndStopTrackingMsg() {
- id retained = [@[] retain]; // +0, GC
- CFConsumeAndStopTracking((CFTypeRef)retained, ^{}); // expected-warning {{Incorrect decrement of the reference count of an object that is not owned at this point by the caller}}
-}
-
-void testCFConsumeAndStopTracking() {
- CFTypeRef retained = returnsRetainedCFDate(); // +1
- CFConsumeAndStopTracking(retained, ^{}); // no-warning
-
- CFTypeRef doubleRetained = CFRetain(returnsRetainedCFDate()); // +2
- CFConsumeAndStopTracking(doubleRetained, ^{
- CFRelease(doubleRetained);
- }); // no-warning
-
- id unretained = @[]; // +0
- CFConsumeAndStopTracking((CFTypeRef)unretained, ^{}); // expected-warning {{Incorrect decrement of the reference count of an object that is not owned at this point by the caller}}
-}
diff --git a/clang/test/Analysis/retain-release-path-notes-gc.m b/clang/test/Analysis/retain-release-path-notes-gc.m
deleted file mode 100644
index 74137b40e7b..00000000000
--- a/clang/test/Analysis/retain-release-path-notes-gc.m
+++ /dev/null
@@ -1,75 +0,0 @@
-// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 -analyzer-checker=core,osx.coreFoundation.CFRetainRelease,osx.cocoa.ClassRelease,osx.cocoa.RetainCount -analyzer-store=region -fobjc-gc-only -analyzer-output=text -verify %s
-// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 -analyzer-checker=core,osx.coreFoundation.CFRetainRelease,osx.cocoa.ClassRelease,osx.cocoa.RetainCount -analyzer-store=region -fobjc-gc-only -analyzer-output=plist-multi-file %s -o %t.plist
-// RUN: tail -n +11 %t.plist | diff -u -w - %S/Inputs/expected-plists/retain-release-path-notes-gc.m.plist
-
-/***
-This file is for testing the path-sensitive notes for retain/release errors.
-Its goal is to have simple branch coverage of any path-based diagnostics,
-not to actually check all possible retain/release errors.
-
-This file is for notes that only appear in a GC-enabled analysis.
-Non-specific and ref-count-only notes should go in retain-release-path-notes.m.
-***/
-
-@interface NSObject
-+ (id)alloc;
-- (id)init;
-- (void)dealloc;
-
-- (Class)class;
-
-- (id)retain;
-- (void)release;
-- (void)autorelease;
-@end
-
-@interface Foo : NSObject
-- (id)methodWithValue;
-@property(retain) id propertyValue;
-@end
-
-typedef struct CFType *CFTypeRef;
-CFTypeRef CFRetain(CFTypeRef);
-void CFRelease(CFTypeRef);
-
-id NSMakeCollectable(CFTypeRef);
-CFTypeRef CFMakeCollectable(CFTypeRef);
-
-CFTypeRef CFCreateSomething();
-CFTypeRef CFGetSomething();
-
-
-void creationViaCFCreate () {
- CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected}}
- return; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'leaked' is not referenced later in this execution path and has a retain count of +1}}
-}
-
-void makeCollectable () {
- CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected}}
- CFRetain(leaked); // expected-note{{Reference count incremented. The object now has a +2 retain count}}
- CFMakeCollectable(leaked); // expected-note{{In GC mode a call to 'CFMakeCollectable' decrements an object's retain count and registers the object with the garbage collector. An object must have a 0 retain count to be garbage collected. After this call its retain count is +1}}
- NSMakeCollectable(leaked); // expected-note{{In GC mode a call to 'NSMakeCollectable' decrements an object's retain count and registers the object with the garbage collector. Since it now has a 0 retain count the object can be automatically collected by the garbage collector}}
- CFRetain(leaked); // expected-note{{Reference count incremented. The object now has a +1 retain count. The object is not eligible for garbage collection until the retain count reaches 0 again}}
- return; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'leaked' is not referenced later in this execution path and has a retain count of +1}}
-}
-
-void retainReleaseIgnored () {
- id object = [[NSObject alloc] init]; // expected-note{{Method returns an instance of NSObject with a +0 retain count}}
- [object retain]; // expected-note{{In GC mode the 'retain' message has no effect}}
- [object release]; // expected-note{{In GC mode the 'release' message has no effect}}
- [object autorelease]; // expected-note{{In GC mode an 'autorelease' has no effect}}
- CFRelease((CFTypeRef)object); // expected-warning{{Incorrect decrement of the reference count of an object that is not owned at this point by the caller}} expected-note{{Incorrect decrement of the reference count of an object that is not owned at this point by the caller}}
-}
-
-@implementation Foo (FundamentalRuleUnderGC)
-- (id)getViolation {
- id object = (id) CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected}}
- return object; // expected-warning{{leak}} expected-note{{Object returned to caller as an owning reference (single retain count transferred to caller)}} expected-note{{Object leaked: object allocated and stored into 'object' and returned from method 'getViolation' is potentially leaked when using garbage collection. Callers of this method do not expect a returned object with a +1 retain count since they expect the object to be managed by the garbage collector}}
-}
-
-- (id)copyViolation {
- id object = (id) CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count. Core Foundation objects are not automatically garbage collected}}
- return object; // expected-warning{{leak}} expected-note{{Object returned to caller as an owning reference (single retain count transferred to caller)}} expected-note{{Object leaked: object allocated and stored into 'object' and returned from method 'copyViolation' is potentially leaked when using garbage collection. Callers of this method do not expect a returned object with a +1 retain count since they expect the object to be managed by the garbage collector}}
-}
-@end
-
diff --git a/clang/test/Analysis/retain-release-path-notes.m b/clang/test/Analysis/retain-release-path-notes.m
index 27cb5165735..2dc314953fd 100644
--- a/clang/test/Analysis/retain-release-path-notes.m
+++ b/clang/test/Analysis/retain-release-path-notes.m
@@ -36,9 +36,6 @@ CFTypeRef CFRetain(CFTypeRef);
void CFRelease(CFTypeRef);
CFTypeRef CFAutorelease(CFTypeRef __attribute__((cf_consumed)));
-id NSMakeCollectable(CFTypeRef);
-CFTypeRef CFMakeCollectable(CFTypeRef);
-
CFTypeRef CFCreateSomething();
CFTypeRef CFGetSomething();
@@ -98,13 +95,6 @@ void autoreleaseUnowned (Foo *foo) {
return; // expected-warning{{Object autoreleased too many times}} expected-note{{Object was autoreleased but has a +0 retain count}}
}
-void makeCollectableIgnored () {
- CFTypeRef leaked = CFCreateSomething(); // expected-note{{Call to function 'CFCreateSomething' returns a Core Foundation object of type CFTypeRef with a +1 retain count}}
- CFMakeCollectable(leaked); // expected-note{{When GC is not enabled a call to 'CFMakeCollectable' has no effect on its argument}}
- NSMakeCollectable(leaked); // expected-note{{When GC is not enabled a call to 'NSMakeCollectable' has no effect on its argument}}
- return; // expected-warning{{leak}} expected-note{{Object leaked: object allocated and stored into 'leaked' is not referenced later in this execution path and has a retain count of +1}}
-}
-
CFTypeRef CFCopyRuleViolation () {
CFTypeRef object = CFGetSomething(); // expected-note{{Call to function 'CFGetSomething' returns a Core Foundation object of type CFTypeRef with a +0 retain count}}
return object; // expected-warning{{Object with a +0 retain count returned to caller where a +1 (owning) retain count is expected}} expected-note{{Object returned to caller with a +0 retain count}} expected-note{{Object with a +0 retain count returned to caller where a +1 (owning) retain count is expected}}
diff --git a/clang/test/Analysis/retain-release.m b/clang/test/Analysis/retain-release.m
index 4add50eb5d0..2e5b576d247 100644
--- a/clang/test/Analysis/retain-release.m
+++ b/clang/test/Analysis/retain-release.m
@@ -318,9 +318,6 @@ extern CGColorSpaceRef CGColorSpaceCreateDeviceRGB(void);
+ (id)array;
@end
-// This is how NSMakeCollectable is declared in the OS X 10.8 headers.
-id NSMakeCollectable(CFTypeRef __attribute__((cf_consumed))) __attribute__((ns_returns_retained));
-
typedef const struct __CFUUID * CFUUIDRef;
extern
@@ -2076,17 +2073,6 @@ void rdar11400885(int y)
}
}
-id makeCollectableNonLeak() {
- extern CFTypeRef CFCreateSomething();
-
- CFTypeRef object = CFCreateSomething(); // +1
- CFRetain(object); // +2
- id objCObject = NSMakeCollectable(object); // +2
- [objCObject release]; // +1
- return [objCObject autorelease]; // +0
-}
-
-
void consumeAndStopTracking(id NS_CONSUMED obj, void (^callback)(void));
void CFConsumeAndStopTracking(CFTypeRef CF_CONSUMED obj, void (^callback)(void));
OpenPOWER on IntegriCloud