" Attached is a patch for TextDiagnosticPrinter that adds an optional
parameter that allows users to omit the printing of the source
location on a diagnostic. So basically it would omit the "abc.c:5:1: "
at the beginning of the line."

Patch by Alexei Svitkine!




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63396 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Driver/TextDiagnosticPrinter.h b/include/clang/Driver/TextDiagnosticPrinter.h
index b49094d..972fe6d 100644
--- a/include/clang/Driver/TextDiagnosticPrinter.h
+++ b/include/clang/Driver/TextDiagnosticPrinter.h
@@ -31,10 +31,12 @@
   llvm::raw_ostream &OS;
   bool ShowColumn;
   bool CaretDiagnostics;
+  bool ShowLocation;
 public:
   TextDiagnosticPrinter(llvm::raw_ostream &os, bool showColumn = true,
-                        bool caretDiagnistics = true)
-    : OS(os), ShowColumn(showColumn), CaretDiagnostics(caretDiagnistics) {}
+                        bool caretDiagnistics = true, bool showLocation = true)
+    : OS(os), ShowColumn(showColumn), CaretDiagnostics(caretDiagnistics),
+      ShowLocation(showLocation) {}
 
   void PrintIncludeStack(SourceLocation Loc, const SourceManager &SM);
 
diff --git a/lib/Driver/TextDiagnosticPrinter.cpp b/lib/Driver/TextDiagnosticPrinter.cpp
index 36e2d28..27353b8 100644
--- a/lib/Driver/TextDiagnosticPrinter.cpp
+++ b/lib/Driver/TextDiagnosticPrinter.cpp
@@ -113,10 +113,12 @@
   
     // Compute the column number.
     ColNo = PLoc.getColumn();
-    OS << PLoc.getFilename() << ':' << LineNo << ':';
-    if (ColNo && ShowColumn) 
-      OS << ColNo << ':';
-    OS << ' ';
+    if (ShowLocation) {
+      OS << PLoc.getFilename() << ':' << LineNo << ':';
+      if (ColNo && ShowColumn) 
+        OS << ColNo << ':';
+      OS << ' ';
+    }
   }
   
   switch (Level) {