diff options
-rw-r--r-- | clang/include/clang/Frontend/TextDiagnosticPrinter.h | 7 | ||||
-rw-r--r-- | clang/lib/Frontend/TextDiagnosticPrinter.cpp | 5 | ||||
-rw-r--r-- | clang/tools/clang-cc/clang-cc.cpp | 11 |
3 files changed, 16 insertions, 7 deletions
diff --git a/clang/include/clang/Frontend/TextDiagnosticPrinter.h b/clang/include/clang/Frontend/TextDiagnosticPrinter.h index afdafb2b34a..ef8dae5e35b 100644 --- a/clang/include/clang/Frontend/TextDiagnosticPrinter.h +++ b/clang/include/clang/Frontend/TextDiagnosticPrinter.h @@ -38,17 +38,20 @@ class TextDiagnosticPrinter : public DiagnosticClient { bool ShowLocation; bool PrintRangeInfo; bool PrintDiagnosticOption; + bool PrintFixItInfo; public: TextDiagnosticPrinter(llvm::raw_ostream &os, bool showColumn = true, bool caretDiagnistics = true, bool showLocation = true, bool printRangeInfo = true, - bool printDiagnosticOption = true) + bool printDiagnosticOption = true, + bool printFixItInfo = true) : OS(os), LangOpts(0), LastCaretDiagnosticWasNote(false), ShowColumn(showColumn), CaretDiagnostics(caretDiagnistics), ShowLocation(showLocation), PrintRangeInfo(printRangeInfo), - PrintDiagnosticOption(printDiagnosticOption) {} + PrintDiagnosticOption(printDiagnosticOption), + PrintFixItInfo(printFixItInfo) {} void setLangOptions(const LangOptions *LO) { LangOpts = LO; diff --git a/clang/lib/Frontend/TextDiagnosticPrinter.cpp b/clang/lib/Frontend/TextDiagnosticPrinter.cpp index 95837808704..7d3c4c23ffd 100644 --- a/clang/lib/Frontend/TextDiagnosticPrinter.cpp +++ b/clang/lib/Frontend/TextDiagnosticPrinter.cpp @@ -207,10 +207,9 @@ void TextDiagnosticPrinter::EmitCaretDiagnostic(SourceLocation Loc, OS << SourceLine << '\n'; OS << CaretLine << '\n'; - if (NumHints) { + if (NumHints && PrintFixItInfo) { std::string InsertionLine; - for (const CodeModificationHint *Hint = Hints, - *LastHint = Hints + NumHints; + for (const CodeModificationHint *Hint = Hints, *LastHint = Hints + NumHints; Hint != LastHint; ++Hint) { if (Hint->InsertionLoc.isValid()) { // We have an insertion hint. Determine whether the inserted diff --git a/clang/tools/clang-cc/clang-cc.cpp b/clang/tools/clang-cc/clang-cc.cpp index 4e5ff5d2595..e69c62bb397 100644 --- a/clang/tools/clang-cc/clang-cc.cpp +++ b/clang/tools/clang-cc/clang-cc.cpp @@ -300,6 +300,11 @@ NoCaretDiagnostics("fno-caret-diagnostics", " diagnostics")); static llvm::cl::opt<bool> +NoDiagnosticsFixIt("fno-diagnostics-fixit-info", + llvm::cl::desc("Do not include fixit information in" + " diagnostics")); + +static llvm::cl::opt<bool> PrintSourceRangeInfo("fprint-source-range-info", llvm::cl::desc("Print source range spans in numeric form")); @@ -1873,7 +1878,8 @@ public: !NoCaretDiagnostics, !NoShowLocation, PrintSourceRangeInfo, - PrintDiagnosticOption)); + PrintDiagnosticOption, + !NoDiagnosticsFixIt)); } virtual void setLangOptions(const LangOptions *LO) { @@ -2329,7 +2335,8 @@ int main(int argc, char **argv) { !NoCaretDiagnostics, !NoShowLocation, PrintSourceRangeInfo, - PrintDiagnosticOption)); + PrintDiagnosticOption, + !NoDiagnosticsFixIt)); } else { DiagClient.reset(CreateHTMLDiagnosticClient(HTMLDiag)); } |