Browse Source

[analyzer] Plist diagnostics: Fix a case where we fail to close an XML tag.

If the current path diagnostic does /not/ have files associated with it, we
were simply skipping on to the next diagnostic with 'continue'. But that
also skipped the close tag for the diagnostic's <dict> node.

Part of fixing our internal analyzer buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162939 91177308-0d34-0410-b5e6-96231b3b80d8
Jordan Rose 13 years ago
parent
commit
f9f5fdbbef
1 changed files with 2 additions and 3 deletions
  1. 2 3
      lib/StaticAnalyzer/Core/PlistDiagnostics.cpp

+ 2 - 3
lib/StaticAnalyzer/Core/PlistDiagnostics.cpp

@@ -500,8 +500,6 @@ void PlistDiagnostics::FlushDiagnosticsImpl(
     if (!filesMade->empty()) {
       StringRef lastName;
       PDFileEntry::ConsumerFiles *files = filesMade->getFiles(*D);
-      if (!files)
-        continue;
       for (PDFileEntry::ConsumerFiles::const_iterator CI = files->begin(),
               CE = files->end(); CI != CE; ++CI) {
         StringRef newName = CI->first;
@@ -515,7 +513,8 @@ void PlistDiagnostics::FlushDiagnosticsImpl(
         }
         o << "   <string>" << CI->second << "</string>\n";
       }
-      o << "  </array>\n";
+      if (!lastName.empty())
+        o << "  </array>\n";
     }
 
     // Close up the entry.