diff options
-rw-r--r-- | lib/StaticAnalyzer/Core/PlistDiagnostics.cpp | 12 | ||||
-rw-r--r-- | test/Analysis/diagnostics/undef-value-caller.c | 449 | ||||
-rw-r--r-- | test/Analysis/inline-plist.c | 40 | ||||
-rw-r--r-- | test/Analysis/inline-unique-reports.c | 7 | ||||
-rw-r--r-- | test/Analysis/malloc-plist.c | 8492 | ||||
-rw-r--r-- | test/Analysis/plist-output-alternate.m | 42 | ||||
-rw-r--r-- | test/Analysis/plist-output.m | 57 |
7 files changed, 4556 insertions, 4543 deletions
diff --git a/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp b/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp index c3f7c0e810..f1c620a018 100644 --- a/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp +++ b/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp @@ -183,10 +183,18 @@ static void ReportControlFlow(raw_ostream &o, I!=E; ++I) { Indent(o, indent) << "<dict>\n"; ++indent; + + // Make the ranges of the start and end point self-consistent with adjacent edges + // by forcing to use only the beginning of the range. This simplifies the layout + // logic for clients. Indent(o, indent) << "<key>start</key>\n"; - EmitRange(o, SM, LangOpts, I->getStart().asRange(), FM, indent+1); + SourceLocation StartEdge = I->getStart().asRange().getBegin(); + EmitRange(o, SM, LangOpts, SourceRange(StartEdge, StartEdge), FM, indent+1); + Indent(o, indent) << "<key>end</key>\n"; - EmitRange(o, SM, LangOpts, I->getEnd().asRange(), FM, indent+1); + SourceLocation EndEdge = I->getEnd().asRange().getBegin(); + EmitRange(o, SM, LangOpts, SourceRange(EndEdge, EndEdge), FM, indent+1); + --indent; Indent(o, indent) << "</dict>\n"; } diff --git a/test/Analysis/diagnostics/undef-value-caller.c b/test/Analysis/diagnostics/undef-value-caller.c index d8348ad05d..928839d040 100644 --- a/test/Analysis/diagnostics/undef-value-caller.c +++ b/test/Analysis/diagnostics/undef-value-caller.c @@ -10,226 +10,229 @@ int test_calling_unimportant_callee(int argc, char *argv[]) { callee(); return x; // expected-warning {{Undefined or garbage value returned to caller}} } -//CHECK: <dict> -//CHECK: <key>files</key> -//CHECK: <array> -//CHECK: </array> -//CHECK: <key>diagnostics</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>path</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>kind</key><string>event</string> -//CHECK: <key>location</key> -//CHECK: <dict> -//CHECK: <key>line</key><integer>9</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <key>ranges</key> -//CHECK: <array> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>9</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>9</integer> -//CHECK: <key>col</key><integer>7</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </array> -//CHECK: <key>depth</key><integer>0</integer> -//CHECK: <key>extended_message</key> -//CHECK: <string>Variable 'x' declared without an initial value</string> -//CHECK: <key>message</key> -//CHECK: <string>Variable 'x' declared without an initial value</string> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>kind</key><string>control</string> -//CHECK: <key>edges</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>start</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>9</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>9</integer> -//CHECK: <key>col</key><integer>7</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: <key>end</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>kind</key><string>event</string> -//CHECK: <key>location</key> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <key>ranges</key> -//CHECK: <array> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>10</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </array> -//CHECK: <key>depth</key><integer>0</integer> -//CHECK: <key>extended_message</key> -//CHECK: <string>Calling 'callee'</string> -//CHECK: <key>message</key> -//CHECK: <string>Calling 'callee'</string> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>kind</key><string>event</string> -//CHECK: <key>location</key> -//CHECK: <dict> -//CHECK: <key>line</key><integer>2</integer> -//CHECK: <key>col</key><integer>1</integer> -//CHECK: <key>file</key><integer>1</integer> -//CHECK: </dict> -//CHECK: <key>depth</key><integer>1</integer> -//CHECK: <key>extended_message</key> -//CHECK: <string>Entered call from 'test_calling_unimportant_callee'</string> -//CHECK: <key>message</key> -//CHECK: <string>Entered call from 'test_calling_unimportant_callee'</string> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>kind</key><string>event</string> -//CHECK: <key>location</key> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <key>ranges</key> -//CHECK: <array> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>10</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </array> -//CHECK: <key>depth</key><integer>1</integer> -//CHECK: <key>extended_message</key> -//CHECK: <string>Returning from 'callee'</string> -//CHECK: <key>message</key> -//CHECK: <string>Returning from 'callee'</string> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>kind</key><string>control</string> -//CHECK: <key>edges</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>start</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>10</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: <key>end</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>11</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>11</integer> -//CHECK: <key>col</key><integer>10</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>kind</key><string>event</string> -//CHECK: <key>location</key> -//CHECK: <dict> -//CHECK: <key>line</key><integer>11</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <key>ranges</key> -//CHECK: <array> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>11</integer> -//CHECK: <key>col</key><integer>10</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>11</integer> -//CHECK: <key>col</key><integer>10</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </array> -//CHECK: <key>depth</key><integer>0</integer> -//CHECK: <key>extended_message</key> -//CHECK: <string>Undefined or garbage value returned to caller</string> -//CHECK: <key>message</key> -//CHECK: <string>Undefined or garbage value returned to caller</string> -//CHECK: </dict> -//CHECK: </array> -//CHECK: <key>description</key><string>Undefined or garbage value returned to caller</string> -//CHECK: <key>category</key><string>Logic error</string> -//CHECK: <key>type</key><string>Garbage return value</string> -//CHECK: <key>issue_context_kind</key><string>function</string> -//CHECK: <key>issue_context</key><string>test_calling_unimportant_callee</string> -//CHECK: <key>location</key> -//CHECK: <dict> -//CHECK: <key>line</key><integer>11</integer> -//CHECK: <key>col</key><integer>3</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </dict> -//CHECK: </array> -//CHECK: </dict> -//CHECK: </plist> + +// CHECK: <?xml version="1.0" encoding="UTF-8"?> +// CHECK: <plist version="1.0"> +// CHECK: <dict> +// CHECK: <key>files</key> +// CHECK: <array> +// CHECK: </array> +// CHECK: <key>diagnostics</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>path</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>kind</key><string>event</string> +// CHECK: <key>location</key> +// CHECK: <dict> +// CHECK: <key>line</key><integer>9</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <key>ranges</key> +// CHECK: <array> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>9</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>9</integer> +// CHECK: <key>col</key><integer>7</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </array> +// CHECK: <key>depth</key><integer>0</integer> +// CHECK: <key>extended_message</key> +// CHECK: <string>Variable 'x' declared without an initial value</string> +// CHECK: <key>message</key> +// CHECK: <string>Variable 'x' declared without an initial value</string> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>kind</key><string>control</string> +// CHECK: <key>edges</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>start</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>9</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>9</integer> +// CHECK: <key>col</key><integer>5</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: <key>end</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>8</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>kind</key><string>event</string> +// CHECK: <key>location</key> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <key>ranges</key> +// CHECK: <array> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>10</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </array> +// CHECK: <key>depth</key><integer>0</integer> +// CHECK: <key>extended_message</key> +// CHECK: <string>Calling 'callee'</string> +// CHECK: <key>message</key> +// CHECK: <string>Calling 'callee'</string> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>kind</key><string>event</string> +// CHECK: <key>location</key> +// CHECK: <dict> +// CHECK: <key>line</key><integer>2</integer> +// CHECK: <key>col</key><integer>1</integer> +// CHECK: <key>file</key><integer>1</integer> +// CHECK: </dict> +// CHECK: <key>depth</key><integer>1</integer> +// CHECK: <key>extended_message</key> +// CHECK: <string>Entered call from 'test_calling_unimportant_callee'</string> +// CHECK: <key>message</key> +// CHECK: <string>Entered call from 'test_calling_unimportant_callee'</string> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>kind</key><string>event</string> +// CHECK: <key>location</key> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <key>ranges</key> +// CHECK: <array> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>10</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </array> +// CHECK: <key>depth</key><integer>1</integer> +// CHECK: <key>extended_message</key> +// CHECK: <string>Returning from 'callee'</string> +// CHECK: <key>message</key> +// CHECK: <string>Returning from 'callee'</string> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>kind</key><string>control</string> +// CHECK: <key>edges</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>start</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>10</integer> +// CHECK: <key>col</key><integer>8</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: <key>end</key> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>11</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>11</integer> +// CHECK: <key>col</key><integer>8</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>kind</key><string>event</string> +// CHECK: <key>location</key> +// CHECK: <dict> +// CHECK: <key>line</key><integer>11</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <key>ranges</key> +// CHECK: <array> +// CHECK: <array> +// CHECK: <dict> +// CHECK: <key>line</key><integer>11</integer> +// CHECK: <key>col</key><integer>10</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: <dict> +// CHECK: <key>line</key><integer>11</integer> +// CHECK: <key>col</key><integer>10</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </array> +// CHECK: <key>depth</key><integer>0</integer> +// CHECK: <key>extended_message</key> +// CHECK: <string>Undefined or garbage value returned to caller</string> +// CHECK: <key>message</key> +// CHECK: <string>Undefined or garbage value returned to caller</string> +// CHECK: </dict> +// CHECK: </array> +// CHECK: <key>description</key><string>Undefined or garbage value returned to caller</string> +// CHECK: <key>category</key><string>Logic error</string> +// CHECK: <key>type</key><string>Garbage return value</string> +// CHECK: <key>issue_context_kind</key><string>function</string> +// CHECK: <key>issue_context</key><string>test_calling_unimportant_callee</string> +// CHECK: <key>location</key> +// CHECK: <dict> +// CHECK: <key>line</key><integer>11</integer> +// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>file</key><integer>0</integer> +// CHECK: </dict> +// CHECK: </dict> +// CHECK: </array> +// CHECK: </dict> +// CHECK: </plist> diff --git a/test/Analysis/inline-plist.c b/test/Analysis/inline-plist.c index cd57c7b310..7f4822480f 100644 --- a/test/Analysis/inline-plist.c +++ b/test/Analysis/inline-plist.c @@ -88,7 +88,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>11</integer> -// CHECK: <key>col</key><integer>10</integer> +// CHECK: <key>col</key><integer>7</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -101,7 +101,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>12</integer> -// CHECK: <key>col</key><integer>5</integer> +// CHECK: <key>col</key><integer>6</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -122,7 +122,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>12</integer> -// CHECK: <key>col</key><integer>5</integer> +// CHECK: <key>col</key><integer>6</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -198,7 +198,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>14</integer> -// CHECK: <key>col</key><integer>5</integer> +// CHECK: <key>col</key><integer>10</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -219,7 +219,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>14</integer> -// CHECK: <key>col</key><integer>5</integer> +// CHECK: <key>col</key><integer>10</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -341,7 +341,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>18</integer> -// CHECK: <key>col</key><integer>1</integer> +// CHECK: <key>col</key><integer>4</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -420,7 +420,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>33</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>4</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -433,7 +433,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>33</integer> -// CHECK: <key>col</key><integer>9</integer> +// CHECK: <key>col</key><integer>8</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -483,7 +483,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>33</integer> -// CHECK: <key>col</key><integer>9</integer> +// CHECK: <key>col</key><integer>8</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -496,7 +496,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>36</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>4</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -517,7 +517,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>36</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>4</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -530,7 +530,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>37</integer> -// CHECK: <key>col</key><integer>5</integer> +// CHECK: <key>col</key><integer>16</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -594,7 +594,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>26</integer> -// CHECK: <key>col</key><integer>1</integer> +// CHECK: <key>col</key><integer>4</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -702,7 +702,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>45</integer> -// CHECK: <key>col</key><integer>8</integer> +// CHECK: <key>col</key><integer>5</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -856,7 +856,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>50</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>5</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -890,7 +890,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>50</integer> -// CHECK: <key>col</key><integer>41</integer> +// CHECK: <key>col</key><integer>12</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -969,7 +969,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>55</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>9</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -1003,7 +1003,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>56</integer> -// CHECK: <key>col</key><integer>17</integer> +// CHECK: <key>col</key><integer>3</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -1082,7 +1082,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>61</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>5</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -1116,7 +1116,7 @@ void test_block_arg() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>62</integer> -// CHECK: <key>col</key><integer>27</integer> +// CHECK: <key>col</key><integer>3</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> diff --git a/test/Analysis/inline-unique-reports.c b/test/Analysis/inline-unique-reports.c index ae94267d2c..6ae77e257e 100644 --- a/test/Analysis/inline-unique-reports.c +++ b/test/Analysis/inline-unique-reports.c @@ -40,7 +40,7 @@ void test_bug_2() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>9</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>5</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -53,7 +53,7 @@ void test_bug_2() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>10</integer> -// CHECK: <key>col</key><integer>3</integer> +// CHECK: <key>col</key><integer>5</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -117,7 +117,7 @@ void test_bug_2() { // CHECK: </dict> // CHECK: <dict> // CHECK: <key>line</key><integer>4</integer> -// CHECK: <key>col</key><integer>1</integer> +// CHECK: <key>col</key><integer>6</integer> // CHECK: <key>file</key><integer>0</integer> // CHECK: </dict> // CHECK: </array> @@ -182,3 +182,4 @@ void test_bug_2() { // CHECK: </array> // CHECK: </dict> // CHECK: </plist> + diff --git a/test/Analysis/malloc-plist.c b/test/Analysis/malloc-plist.c index 248abc21c8..ef40192543 100644 --- a/test/Analysis/malloc-plist.c +++ b/test/Analysis/malloc-plist.c @@ -168,4248 +168,4250 @@ void use_function_with_leak7() { function_with_leak7(); } -//CHECK: <dict> -//CHECK: <key>files</key> -//CHECK: <array> -//CHECK: </array> -//CHECK: <key>diagnostics</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>path</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>kind</key><string>control</string> -//CHECK: <key>edges</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>start</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>5</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>5</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: </array> -//CHECK: <key>end</key> -//CHECK: <array> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: <key>col</key><integer>9</integer> -//CHECK: <key>file</key><integer>0</integer> -//CHECK: </dict> -//CHECK: <dict> -//CHECK: <key>line</key><integer>10</integer> -//CHECK: |