diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2012-09-10 09:17:27 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2012-09-10 09:17:27 +0000 |
commit | 2343b3d0c29356583a013d900f2817083ac2d4a0 (patch) | |
tree | 95781ead7ddae298c6b719c0844ba9d93dc5532a | |
parent | 89d83ff23414240555f895d3dad736bd30f5af4e (diff) |
Revert Ted's r163489 and r163490, due to breakage.
r163489, "Take another crack at stabilizing the emission order of analyzer"
r163490, "Use isBeforeInTranslationUnitThan() instead of operator<."
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163497 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/StaticAnalyzer/Core/PathDiagnostic.cpp | 146 | ||||
-rw-r--r-- | test/Analysis/retain-release.m | 5553 |
2 files changed, 2788 insertions, 2911 deletions
diff --git a/lib/StaticAnalyzer/Core/PathDiagnostic.cpp b/lib/StaticAnalyzer/Core/PathDiagnostic.cpp index 48d05a0c91..0e772a5bc3 100644 --- a/lib/StaticAnalyzer/Core/PathDiagnostic.cpp +++ b/lib/StaticAnalyzer/Core/PathDiagnostic.cpp @@ -199,7 +199,6 @@ void PathDiagnosticConsumer::HandlePathDiagnostic(PathDiagnostic *D) { if (orig_size <= new_size) return; - assert(orig != D); Diags.RemoveNode(orig); delete orig; } @@ -207,145 +206,22 @@ void PathDiagnosticConsumer::HandlePathDiagnostic(PathDiagnostic *D) { Diags.InsertNode(OwningD.take()); } -static llvm::Optional<bool> comparePath(const PathPieces &X, - const PathPieces &Y); -static llvm::Optional<bool> -compareControlFlow(const PathDiagnosticControlFlowPiece &X, - const PathDiagnosticControlFlowPiece &Y) { - FullSourceLoc XSL = X.getStartLocation().asLocation(); - FullSourceLoc YSL = Y.getStartLocation().asLocation(); - if (XSL != YSL) - return XSL.isBeforeInTranslationUnitThan(YSL); - FullSourceLoc XEL = X.getStartLocation().asLocation(); - FullSourceLoc YEL = Y.getStartLocation().asLocation(); - if (XEL != YEL) - return XEL.isBeforeInTranslationUnitThan(YEL); - return llvm::Optional<bool>(); -} - -static llvm::Optional<bool> -compareMacro(const PathDiagnosticMacroPiece &X, - const PathDiagnosticMacroPiece &Y) { - return comparePath(X.subPieces, Y.subPieces); -} - -static llvm::Optional<bool> -compareCall(const PathDiagnosticCallPiece &X, - const PathDiagnosticCallPiece &Y) { - FullSourceLoc X_CEL = X.callEnter.asLocation(); - FullSourceLoc Y_CEL = Y.callEnter.asLocation(); - if (X_CEL != Y_CEL) - return X_CEL.isBeforeInTranslationUnitThan(Y_CEL); - FullSourceLoc X_CEWL = X.callEnterWithin.asLocation(); - FullSourceLoc Y_CEWL = Y.callEnterWithin.asLocation(); - if (X_CEWL != Y_CEWL) - return X_CEWL.isBeforeInTranslationUnitThan(Y_CEWL); - FullSourceLoc X_CRL = X.callReturn.asLocation(); - FullSourceLoc Y_CRL = Y.callReturn.asLocation(); - if (X_CRL != Y_CRL) - return X_CRL.isBeforeInTranslationUnitThan(Y_CRL); - return comparePath(X.path, Y.path); -} - -static llvm::Optional<bool> comparePiece(const PathDiagnosticPiece &X, - const PathDiagnosticPiece &Y) { - if (X.getKind() != Y.getKind()) - return X.getKind() < Y.getKind(); - - FullSourceLoc XL = X.getLocation().asLocation(); - FullSourceLoc YL = Y.getLocation().asLocation(); - if (XL != YL) - return XL.isBeforeInTranslationUnitThan(YL); - - if (X.getString() != Y.getString()) - return X.getString() < Y.getString(); - - if (X.getRanges().size() != Y.getRanges().size()) - return X.getRanges().size() < Y.getRanges().size(); - - for (unsigned i = 0, n = X.getRanges().size(); i < n; ++i) { - SourceRange XR = X.getRanges()[i]; - SourceRange YR = Y.getRanges()[i]; - if (XR != YR) { - if (XR.getBegin() != YR.getBegin()) - return XR.getBegin() < YR.getBegin(); - return XR.getEnd() < YR.getEnd(); - } - } - - switch (X.getKind()) { - case clang::ento::PathDiagnosticPiece::ControlFlow: - return compareControlFlow(cast<PathDiagnosticControlFlowPiece>(X), - cast<PathDiagnosticControlFlowPiece>(Y)); - case clang::ento::PathDiagnosticPiece::Event: - return llvm::Optional<bool>(); - case clang::ento::PathDiagnosticPiece::Macro: - return compareMacro(cast<PathDiagnosticMacroPiece>(X), - cast<PathDiagnosticMacroPiece>(Y)); - case clang::ento::PathDiagnosticPiece::Call: - return compareCall(cast<PathDiagnosticCallPiece>(X), - cast<PathDiagnosticCallPiece>(Y)); - } - llvm_unreachable("all cases handled"); -} - -static llvm::Optional<bool> comparePath(const PathPieces &X, - const PathPieces &Y) { - if (X.size() != Y.size()) - return X.size() < Y.size(); - for (unsigned i = 0, n = X.size(); i != n; ++i) { - llvm::Optional<bool> b = comparePiece(*X[i], *Y[i]); - if (b.hasValue()) - return b.getValue(); - } - return llvm::Optional<bool>(); -} - -static bool compare(const PathDiagnostic &X, const PathDiagnostic &Y) { - FullSourceLoc XL = X.getLocation().asLocation(); - FullSourceLoc YL = Y.getLocation().asLocation(); - if (XL != YL) - return XL.isBeforeInTranslationUnitThan(YL); - if (X.getBugType() != Y.getBugType()) - return X.getBugType() < Y.getBugType(); - if (X.getCategory() != Y.getCategory()) - return X.getCategory() < Y.getCategory(); - if (X.getVerboseDescription() != Y.getVerboseDescription()) - return X.getVerboseDescription() < Y.getVerboseDescription(); - if (X.getShortDescription() != Y.getShortDescription()) - return X.getShortDescription() < Y.getShortDescription(); - if (X.getDeclWithIssue() != Y.getDeclWithIssue()) { - const Decl *XD = X.getDeclWithIssue(); - if (!XD) - return true; - const Decl *YD = Y.getDeclWithIssue(); - if (!YD) - return false; - SourceLocation XDL = XD->getLocation(); - SourceLocation YDL = YD->getLocation(); - if (XDL != YDL) - return XDL < YDL; - } - PathDiagnostic::meta_iterator XI = X.meta_begin(), XE = X.meta_end(); - PathDiagnostic::meta_iterator YI = Y.meta_begin(), YE = Y.meta_end(); - if (XE - XI != YE - YI) - return (XE - XI) < (YE - YI); - for ( ; XI != XE ; ++XI, ++YI) { - if (*XI != *YI) - return (*XI) < (*YI); - } - llvm::Optional<bool> b = comparePath(X.path, Y.path); - assert(b.hasValue()); - return b.getValue(); -} namespace { struct CompareDiagnostics { // Compare if 'X' is "<" than 'Y'. bool operator()(const PathDiagnostic *X, const PathDiagnostic *Y) const { - if (X == Y) - return false; - return compare(*X, *Y); + // First sort by location, and if that doesn't work, do a full profile. + FullSourceLoc XL = X->getLocation().asLocation(); + FullSourceLoc YL = Y->getLocation().asLocation(); + if (XL != YL) + return XL < YL; + + // Do a full profile. + llvm::FoldingSetNodeID XProfile, YProfile; + X->FullProfile(XProfile); + Y->FullProfile(YProfile); + return XProfile < YProfile; } }; } diff --git a/test/Analysis/retain-release.m b/test/Analysis/retain-release.m index a236a7c787..7e5aae4502 100644 --- a/test/Analysis/retain-release.m +++ b/test/Analysis/retain-release.m @@ -1,8 +1,9 @@ -// RUN: rm -f $t.objc.plist $t.objcpp.plist // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze -analyzer-checker=core,osx.coreFoundation.CFRetainRelease,osx.cocoa.ClassRelease,osx.cocoa.RetainCount -analyzer-store=region -fblocks -verify -Wno-objc-root-class %s -analyzer-output=plist -o %t.objc.plist // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze -analyzer-checker=core,osx.coreFoundation.CFRetainRelease,osx.cocoa.ClassRelease,osx.cocoa.RetainCount -analyzer-store=region -fblocks -verify -x objective-c++ -Wno-objc-root-class %s -analyzer-output=plist -o %t.objcpp.plist -// RUN: FileCheck --input-file=%t.objc.plist %s -// RUN: FileCheck --input-file=%t.objcpp.plist %s + +// FIXME: The plist output is not being deterministically generated on all hosts for both ObjC and ObjC++. +// FIXLATER: FileCheck --input-file=%t.objc.plist %s +// FIXLATER: FileCheck --input-file=%t.objcpp.plist %s #if __has_feature(attribute_ns_returns_retained) #define NS_RETURNS_RETAINED __attribute__((ns_returns_retained)) @@ -1936,12 +1937,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>319</integer> +// CHECK-NEXT: <key>line</key><integer>318</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>319</integer> +// CHECK-NEXT: <key>line</key><integer>318</integer> // CHECK-NEXT: <key>col</key><integer>16</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -1949,12 +1950,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -1970,12 +1971,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -1983,12 +1984,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>31</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2000,7 +2001,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>kind</key><string>event</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2008,12 +2009,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>37</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2023,7 +2024,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>extended_message</key> // CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> // CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> +// CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>kind</key><string>control</string> @@ -2033,12 +2034,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>320</integer> +// CHECK-NEXT: <key>line</key><integer>319</integer> // CHECK-NEXT: <key>col</key><integer>31</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2046,12 +2047,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>10</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2063,7 +2064,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>kind</key><string>event</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2071,24 +2072,24 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>16</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: </array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>12</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>15</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2098,7 +2099,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>extended_message</key> // CHECK-NEXT: <string>Reference count incremented. The object now has a +2 retain count</string> // CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Reference count incremented. The object now has a +2 retain count</string> +// CHECK-NEXT: <string>Reference count incremented. The object now has a +2 retain count</string> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>kind</key><string>control</string> @@ -2108,12 +2109,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>321</integer> +// CHECK-NEXT: <key>line</key><integer>320</integer> // CHECK-NEXT: <key>col</key><integer>10</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2121,12 +2122,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2138,7 +2139,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>kind</key><string>event</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2146,24 +2147,24 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>17</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: </array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>13</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>16</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2173,7 +2174,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>extended_message</key> // CHECK-NEXT: <string>Reference count decremented. The object now has a +1 retain count</string> // CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Reference count decremented. The object now has a +1 retain count</string> +// CHECK-NEXT: <string>Reference count decremented. The object now has a +1 retain count</string> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>kind</key><string>control</string> @@ -2183,12 +2184,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>322</integer> +// CHECK-NEXT: <key>line</key><integer>321</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2196,12 +2197,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2213,7 +2214,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>kind</key><string>event</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2221,24 +2222,24 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>17</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: </array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>13</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>16</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2248,7 +2249,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>extended_message</key> // CHECK-NEXT: <string>Object released</string> // CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Object released</string> +// CHECK-NEXT: <string>Object released</string> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>kind</key><string>control</string> @@ -2258,12 +2259,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>324</integer> +// CHECK-NEXT: <key>line</key><integer>323</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2271,12 +2272,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2292,12 +2293,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2305,12 +2306,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>7</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>27</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2322,7 +2323,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>kind</key><string>event</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>7</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2330,12 +2331,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>29</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>32</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2345,7 +2346,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>extended_message</key> // CHECK-NEXT: <string>Reference-counted object is used after it is released</string> // CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Reference-counted object is used after it is released</string> +// CHECK-NEXT: <string>Reference-counted object is used after it is released</string> // CHECK-NEXT: </dict> // CHECK-NEXT: </array> // CHECK-NEXT: <key>description</key><string>Reference-counted object is used after it is released</string> @@ -2356,7 +2357,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>issue_hash</key><integer>7</integer> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>325</integer> +// CHECK-NEXT: <key>line</key><integer>324</integer> // CHECK-NEXT: <key>col</key><integer>7</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2372,12 +2373,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>330</integer> +// CHECK-NEXT: <key>line</key><integer>329</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>330</integer> +// CHECK-NEXT: <key>line</key><integer>329</integer> // CHECK-NEXT: <key>col</key><integer>16</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2385,12 +2386,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2406,12 +2407,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>start</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>11</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2419,12 +2420,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>31</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2436,7 +2437,7 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <key>kind</key><string>event</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> @@ -2444,12 +2445,12 @@ void test_CFPlugInInstanceCreate(CFUUIDRef factoryUUID, CFUUIDRef typeUUID) { // CHECK-NEXT: <array> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>331</integer> +// CHECK-NEXT: <key>line</key><integer>330</integer> // CHECK-NEXT: <key>col</key><integer>20</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> // CHECK-NEXT: </dict> // CHECK-NEXT: & |