BugReporter/PathDiagnostics:
- Add an (optional) short description for BugReports for clients that want
  to distinguish between long and short descriptions for bugs
- Make the bug report for VLA less obscene for Plist diagnostics by using
  the short description


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70415 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index 3c814db..4e88baa 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -1667,14 +1667,18 @@
 void BugReporter::FlushReport(BugReportEquivClass& EQ) {
   assert(!EQ.Reports.empty());
   BugReport &R = **EQ.begin();
+  PathDiagnosticClient* PD = getPathDiagnosticClient();
   
   // FIXME: Make sure we use the 'R' for the path that was actually used.
   // Probably doesn't make a difference in practice.  
   BugType& BT = R.getBugType();
   
-  llvm::OwningPtr<PathDiagnostic> D(new PathDiagnostic(R.getBugType().getName(),
-                                                R.getDescription(),
-                                                BT.getCategory()));
+  llvm::OwningPtr<PathDiagnostic>
+    D(new PathDiagnostic(R.getBugType().getName(),
+                         PD->useVerboseDescription()
+                         ? R.getDescription() : R.getShortDescription(),
+                         BT.getCategory()));
+
   GeneratePathDiagnostic(*D.get(), EQ);
   
   // Get the meta data.
@@ -1682,7 +1686,6 @@
   for (const char** s = Meta.first; s != Meta.second; ++s) D->addMeta(*s);
 
   // Emit a summary diagnostic to the regular Diagnostics engine.
-  PathDiagnosticClient* PD = getPathDiagnosticClient();
   const SourceRange *Beg = 0, *End = 0;
   R.getRanges(*this, Beg, End);    
   Diagnostic& Diag = getDiagnostic();