aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/StaticAnalyzer/Core/PlistDiagnostics.cpp12
-rw-r--r--test/Analysis/diagnostics/undef-value-caller.c449
-rw-r--r--test/Analysis/inline-plist.c40
-rw-r--r--test/Analysis/inline-unique-reports.c7
-rw-r--r--test/Analysis/malloc-plist.c8492
-rw-r--r--test/Analysis/plist-output-alternate.m42
-rw-r--r--test/Analysis/plist-output.m57
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 &apos;x&apos; declared without an initial value</string>
-//CHECK: <key>message</key>
-//CHECK: <string>Variable &apos;x&apos; 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 &apos;callee&apos;</string>
-//CHECK: <key>message</key>
-//CHECK: <string>Calling &apos;callee&apos;</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 &apos;test_calling_unimportant_callee&apos;</string>
-//CHECK: <key>message</key>
-//CHECK: <string>Entered call from &apos;test_calling_unimportant_callee&apos;</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 &apos;callee&apos;</string>
-//CHECK: <key>message</key>
-//CHECK: <string>Returning from &apos;callee&apos;</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 &apos;x&apos; declared without an initial value</string>
+// CHECK: <key>message</key>
+// CHECK: <string>Variable &apos;x&apos; 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 &apos;callee&apos;</string>
+// CHECK: <key>message</key>
+// CHECK: <string>Calling &apos;callee&apos;</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 &apos;test_calling_unimportant_callee&apos;</string>
+// CHECK: <key>message</key>
+// CHECK: <string>Entered call from &apos;test_calling_unimportant_callee&apos;</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 &apos;callee&apos;</string>
+// CHECK: <key>message</key>
+// CHECK: <string>Returning from &apos;callee&apos;</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>