diff options
Diffstat (limited to 'test/Analysis/retain-release-path-notes.m')
-rw-r--r-- | test/Analysis/retain-release-path-notes.m | 87 |
1 files changed, 23 insertions, 64 deletions
diff --git a/test/Analysis/retain-release-path-notes.m b/test/Analysis/retain-release-path-notes.m index 0daeecb..8809c57 100644 --- a/test/Analysis/retain-release-path-notes.m +++ b/test/Analysis/retain-release-path-notes.m @@ -138,7 +138,7 @@ CFTypeRef CFGetRuleViolation () { - (id)copyAutorelease { id result = [[Foo alloc] init]; // expected-note{{Method returns an Objective-C object with a +1 retain count}} [result autorelease]; // expected-note{{Object sent -autorelease message}} - return result; // 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}} + return result; // expected-warning{{Object with a +0 retain count returned to caller where a +1 (owning) retain count is expected}} expected-note{{Object with a +0 retain count returned to caller where a +1 (owning) retain count is expected}} } @end @@ -328,7 +328,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>creationViaAlloc</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>47</integer> @@ -471,7 +471,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>creationViaCFCreate</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>52</integer> @@ -839,7 +839,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>acquisitionViaMethod</string> -// CHECK-NEXT: <key>issue_hash</key><integer>5</integer> +// CHECK-NEXT: <key>issue_hash</key><string>5</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>60</integer> @@ -1057,7 +1057,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>acquisitionViaProperty</string> -// CHECK-NEXT: <key>issue_hash</key><integer>3</integer> +// CHECK-NEXT: <key>issue_hash</key><string>3</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>66</integer> @@ -1275,7 +1275,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>acquisitionViaCFFunction</string> -// CHECK-NEXT: <key>issue_hash</key><integer>3</integer> +// CHECK-NEXT: <key>issue_hash</key><string>3</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>72</integer> @@ -1493,7 +1493,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Use-after-release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>explicitDealloc</string> -// CHECK-NEXT: <key>issue_hash</key><integer>3</integer> +// CHECK-NEXT: <key>issue_hash</key><string>3</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>78</integer> @@ -1711,7 +1711,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Use-after-release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>implicitDealloc</string> -// CHECK-NEXT: <key>issue_hash</key><integer>3</integer> +// CHECK-NEXT: <key>issue_hash</key><string>3</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>84</integer> @@ -2004,7 +2004,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Object sent -autorelease too many times</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>overAutorelease</string> -// CHECK-NEXT: <key>issue_hash</key><integer>4</integer> +// CHECK-NEXT: <key>issue_hash</key><string>4</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>91</integer> @@ -2222,7 +2222,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Object sent -autorelease too many times</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>autoreleaseUnowned</string> -// CHECK-NEXT: <key>issue_hash</key><integer>3</integer> +// CHECK-NEXT: <key>issue_hash</key><string>3</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>97</integer> @@ -2515,7 +2515,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>makeCollectableIgnored</string> -// CHECK-NEXT: <key>issue_hash</key><integer>4</integer> +// CHECK-NEXT: <key>issue_hash</key><string>4</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>104</integer> @@ -2699,7 +2699,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Method should return an owned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>CFCopyRuleViolation</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>109</integer> @@ -2883,7 +2883,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak of returned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>CFGetRuleViolation</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>114</integer> @@ -3067,7 +3067,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Method should return an owned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>Objective-C method</string> // CHECK-NEXT: <key>issue_context</key><string>copyViolation</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>120</integer> @@ -3251,7 +3251,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Method should return an owned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>Objective-C method</string> // CHECK-NEXT: <key>issue_context</key><string>copyViolationIndexedSubscript</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>125</integer> @@ -3435,7 +3435,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Method should return an owned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>Objective-C method</string> // CHECK-NEXT: <key>issue_context</key><string>copyViolationKeyedSubscript</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>130</integer> @@ -3619,7 +3619,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Leak of returned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>Objective-C method</string> // CHECK-NEXT: <key>issue_context</key><string>getViolation</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>135</integer> @@ -3824,47 +3824,6 @@ void testDictionary(id key, id value) { // 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>141</integer> -// CHECK-NEXT: <key>col</key><integer>10</integer> -// CHECK-NEXT: <key>file</key><integer>0</integer> -// CHECK-NEXT: </dict> -// CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>141</integer> -// CHECK-NEXT: <key>col</key><integer>15</integer> -// CHECK-NEXT: <key>file</key><integer>0</integer> -// CHECK-NEXT: </dict> -// CHECK-NEXT: </array> -// CHECK-NEXT: </array> -// CHECK-NEXT: <key>depth</key><integer>0</integer> -// CHECK-NEXT: <key>extended_message</key> -// CHECK-NEXT: <string>Object returned to caller with a +0 retain count</string> -// CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Object returned to caller with a +0 retain count</string> -// CHECK-NEXT: </dict> -// CHECK-NEXT: <dict> -// CHECK-NEXT: <key>kind</key><string>event</string> -// CHECK-NEXT: <key>location</key> -// CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>141</integer> -// CHECK-NEXT: <key>col</key><integer>3</integer> -// CHECK-NEXT: <key>file</key><integer>0</integer> -// CHECK-NEXT: </dict> -// CHECK-NEXT: <key>ranges</key> -// CHECK-NEXT: <array> -// CHECK-NEXT: <array> -// CHECK-NEXT: <dict> -// CHECK-NEXT: <key>line</key><integer>141</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>141</integer> -// CHECK-NEXT: <key>col</key><integer>15</integer> -// CHECK-NEXT: <key>file</key><integer>0</integer> -// CHECK-NEXT: </dict> -// CHECK-NEXT: </array> // CHECK-NEXT: </array> // CHECK-NEXT: <key>depth</key><integer>0</integer> // CHECK-NEXT: <key>extended_message</key> @@ -3878,7 +3837,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Method should return an owned object</string> // CHECK-NEXT: <key>issue_context_kind</key><string>Objective-C method</string> // CHECK-NEXT: <key>issue_context</key><string>copyAutorelease</string> -// CHECK-NEXT: <key>issue_hash</key><integer>3</integer> +// CHECK-NEXT: <key>issue_hash</key><string>3</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>141</integer> @@ -4021,7 +3980,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Bad release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>testNumericLiteral</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>170</integer> @@ -4164,7 +4123,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Bad release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>testBoxedInt</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>175</integer> @@ -4307,7 +4266,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Bad release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>testBoxedString</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>180</integer> @@ -4450,7 +4409,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Bad release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>testArray</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>185</integer> @@ -4593,7 +4552,7 @@ void testDictionary(id key, id value) { // CHECK-NEXT: <key>type</key><string>Bad release</string> // CHECK-NEXT: <key>issue_context_kind</key><string>function</string> // CHECK-NEXT: <key>issue_context</key><string>testDictionary</string> -// CHECK-NEXT: <key>issue_hash</key><integer>2</integer> +// CHECK-NEXT: <key>issue_hash</key><string>2</string> // CHECK-NEXT: <key>location</key> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>190</integer> |