diff options
| author | Ted Kremenek <kremenek@apple.com> | 2010-10-15 22:50:23 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2010-10-15 22:50:23 +0000 |
| commit | 4f63ac7057cd940044bb0d3274c972429c5988f2 (patch) | |
| tree | d4e4a9cf308aa703d75eba788d213581bc191e4d | |
| parent | d2466687bf92a19989580e185bb91e96c5bb8631 (diff) | |
| download | bcm5719-llvm-4f63ac7057cd940044bb0d3274c972429c5988f2.tar.gz bcm5719-llvm-4f63ac7057cd940044bb0d3274c972429c5988f2.zip | |
Tweak retain/release checker diagnostics to specify a leak occurs because an object is not referenced later in the path,
not that it isn't referenced later in the code. Fixes <rdar://problem/8527839>.
llvm-svn: 116636
| -rw-r--r-- | clang/lib/Checker/CFRefCount.cpp | 4 | ||||
| -rw-r--r-- | clang/test/Analysis/plist-output-alternate.m | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/Checker/CFRefCount.cpp b/clang/lib/Checker/CFRefCount.cpp index 35451a18669..8d1f4ba0533 100644 --- a/clang/lib/Checker/CFRefCount.cpp +++ b/clang/lib/Checker/CFRefCount.cpp @@ -2420,8 +2420,8 @@ CFRefLeakReport::getEndPath(BugReporterContext& BRC, "collector"; } else - os << " is no longer referenced after this point and has a retain count of" - " +" << RV->getCount() << " (object leaked)"; + os << " is not referenced later in this execution path and has a retain " + "count of +" << RV->getCount() << " (object leaked)"; return new PathDiagnosticEventPiece(L, os.str()); } diff --git a/clang/test/Analysis/plist-output-alternate.m b/clang/test/Analysis/plist-output-alternate.m index 364289d6d29..d063348a116 100644 --- a/clang/test/Analysis/plist-output-alternate.m +++ b/clang/test/Analysis/plist-output-alternate.m @@ -994,9 +994,9 @@ void rdar8331641(int x) { // CHECK: </array> // CHECK: </array> // CHECK: <key>extended_message</key> -// CHECK: <string>Object allocated on line 53 and stored into 'value' is no longer referenced after this point and has a retain count of +1 (object leaked)</string> +// CHECK: <string>Object allocated on line 53 and stored into 'value' is not referenced later in this execution path and has a retain count of +1 (object leaked)</string> // CHECK: <key>message</key> -// CHECK: <string>Object allocated on line 53 and stored into 'value' is no longer referenced after this point and has a retain count of +1 (object leaked)</string> +// CHECK: <string>Object allocated on line 53 and stored into 'value' is not referenced later in this execution path and has a retain count of +1 (object leaked)</string> // CHECK: </dict> // CHECK: </array> // CHECK: <key>description</key><string>Potential leak of an object allocated on line 53 and stored into 'value'</string> |

