From: Daniel Dunbar Date: Wed, 11 Nov 2009 08:13:40 +0000 (+0000) Subject: clang-cc: Move InitializeDiagnosticOptions to Options.cpp X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0db4b765d7667cefb275e162be69a1aa9a32788e;p=clang clang-cc: Move InitializeDiagnosticOptions to Options.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86819 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/clang-cc/Options.cpp b/tools/clang-cc/Options.cpp index e4f97be72d..f8e15669ef 100644 --- a/tools/clang-cc/Options.cpp +++ b/tools/clang-cc/Options.cpp @@ -13,6 +13,7 @@ #include "Options.h" #include "clang/Frontend/CompileOptions.h" +#include "clang/Frontend/DiagnosticOptions.h" #include "clang/Frontend/HeaderSearchOptions.h" #include "clang/Frontend/PCHReader.h" #include "clang/Frontend/PreprocessorOptions.h" @@ -86,6 +87,51 @@ TargetFeatures("target-feature", llvm::cl::desc("Target specific attributes")); } +//===----------------------------------------------------------------------===// +// Diagnostic Options +//===----------------------------------------------------------------------===// + +namespace diagnosticoptions { + +static llvm::cl::opt +NoShowColumn("fno-show-column", + llvm::cl::desc("Do not include column number on diagnostics")); + +static llvm::cl::opt +NoShowLocation("fno-show-source-location", + llvm::cl::desc("Do not include source location information with" + " diagnostics")); + +static llvm::cl::opt +NoCaretDiagnostics("fno-caret-diagnostics", + llvm::cl::desc("Do not include source line and caret with" + " diagnostics")); + +static llvm::cl::opt +NoDiagnosticsFixIt("fno-diagnostics-fixit-info", + llvm::cl::desc("Do not include fixit information in" + " diagnostics")); + +static llvm::cl::opt +PrintSourceRangeInfo("fdiagnostics-print-source-range-info", + llvm::cl::desc("Print source range spans in numeric form")); + +static llvm::cl::opt +PrintDiagnosticOption("fdiagnostics-show-option", + llvm::cl::desc("Print diagnostic name with mappable diagnostics")); + +static llvm::cl::opt +MessageLength("fmessage-length", + llvm::cl::desc("Format message diagnostics so that they fit " + "within N columns or fewer, when possible."), + llvm::cl::value_desc("N")); + +static llvm::cl::opt +PrintColorDiagnostic("fcolor-diagnostics", + llvm::cl::desc("Use colors in diagnostics")); + +} + //===----------------------------------------------------------------------===// // Language Options //===----------------------------------------------------------------------===// @@ -250,7 +296,6 @@ PascalStrings("fpascal-strings", llvm::cl::desc("Recognize and construct Pascal-style " "string literals")); -// FIXME: Move to CompileOptions. static llvm::cl::opt Rtti("frtti", llvm::cl::init(true), llvm::cl::desc("Enable generation of rtti information")); @@ -454,6 +499,19 @@ void clang::InitializeCompileOptions(CompileOptions &Opts, Opts.MergeAllConstants = !NoMergeConstants; } +void clang::InitializeDiagnosticOptions(DiagnosticOptions &Opts) { + using namespace diagnosticoptions; + + Opts.ShowColumn = !NoShowColumn; + Opts.ShowLocation = !NoShowLocation; + Opts.ShowCarets = !NoCaretDiagnostics; + Opts.ShowFixits = !NoDiagnosticsFixIt; + Opts.ShowSourceRanges = PrintSourceRangeInfo; + Opts.ShowOptionNames = PrintDiagnosticOption; + Opts.ShowColors = PrintColorDiagnostic; + Opts.MessageLength = MessageLength; +} + void clang::InitializeHeaderSearchOptions(HeaderSearchOptions &Opts, llvm::StringRef BuiltinIncludePath, bool Verbose, diff --git a/tools/clang-cc/Options.h b/tools/clang-cc/Options.h index 760da4675d..0bbb502645 100644 --- a/tools/clang-cc/Options.h +++ b/tools/clang-cc/Options.h @@ -15,6 +15,7 @@ namespace clang { class CompileOptions; +class DiagnosticOptions; class HeaderSearchOptions; class LangOptions; class PreprocessorOptions; @@ -39,6 +40,8 @@ enum LangKind { // before language initialization? void ComputeFeatureMap(TargetInfo &Target, llvm::StringMap &Features); +void InitializeDiagnosticOptions(DiagnosticOptions &Opts); + void InitializeCompileOptions(CompileOptions &Opts, const llvm::StringMap &Features); diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp index bc4afc5ecb..2177fcdef9 100644 --- a/tools/clang-cc/clang-cc.cpp +++ b/tools/clang-cc/clang-cc.cpp @@ -21,7 +21,6 @@ #include "clang/Frontend/ASTUnit.h" #include "clang/Frontend/ChainedDiagnosticClient.h" #include "clang/Frontend/CompilerInvocation.h" -#include "clang/Frontend/DiagnosticOptions.h" #include "clang/Frontend/FixItRewriter.h" #include "clang/Frontend/FrontendDiagnostic.h" #include "clang/Frontend/PCHReader.h" @@ -258,51 +257,6 @@ static llvm::cl::opt TokenCache("token-cache", llvm::cl::value_desc("path"), llvm::cl::desc("Use specified token cache file")); -//===----------------------------------------------------------------------===// -// Diagnostic Options -//===----------------------------------------------------------------------===// - -static llvm::cl::opt -VerifyDiagnostics("verify", - llvm::cl::desc("Verify emitted diagnostics and warnings")); - -static llvm::cl::opt -NoShowColumn("fno-show-column", - llvm::cl::desc("Do not include column number on diagnostics")); - -static llvm::cl::opt -NoShowLocation("fno-show-source-location", - llvm::cl::desc("Do not include source location information with" - " diagnostics")); - -static llvm::cl::opt -NoCaretDiagnostics("fno-caret-diagnostics", - llvm::cl::desc("Do not include source line and caret with" - " diagnostics")); - -static llvm::cl::opt -NoDiagnosticsFixIt("fno-diagnostics-fixit-info", - llvm::cl::desc("Do not include fixit information in" - " diagnostics")); - -static llvm::cl::opt -PrintSourceRangeInfo("fdiagnostics-print-source-range-info", - llvm::cl::desc("Print source range spans in numeric form")); - -static llvm::cl::opt -PrintDiagnosticOption("fdiagnostics-show-option", - llvm::cl::desc("Print diagnostic name with mappable diagnostics")); - -static llvm::cl::opt -MessageLength("fmessage-length", - llvm::cl::desc("Format message diagnostics so that they fit " - "within N columns or fewer, when possible."), - llvm::cl::value_desc("N")); - -static llvm::cl::opt -PrintColorDiagnostic("fcolor-diagnostics", - llvm::cl::desc("Use colors in diagnostics")); - //===----------------------------------------------------------------------===// // C++ Visualization. //===----------------------------------------------------------------------===// @@ -313,7 +267,7 @@ InheritanceViewCls("cxx-inheritance-view", llvm::cl::desc("View C++ inheritance for a specified class")); //===----------------------------------------------------------------------===// -// Builtin Options +// Frontend Options //===----------------------------------------------------------------------===// static llvm::cl::opt @@ -321,6 +275,10 @@ TimeReport("ftime-report", llvm::cl::desc("Print the amount of time each " "phase of compilation takes")); +static llvm::cl::opt +VerifyDiagnostics("verify", + llvm::cl::desc("Verify emitted diagnostics and warnings")); + //===----------------------------------------------------------------------===// // Language Options //===----------------------------------------------------------------------===// @@ -1235,18 +1193,6 @@ static LangKind GetLanguage() { return LK; } -static void ConstructDiagnosticOptions(DiagnosticOptions &Opts) { - // Initialize the diagnostic options. - Opts.ShowColumn = !NoShowColumn; - Opts.ShowLocation = !NoShowLocation; - Opts.ShowCarets = !NoCaretDiagnostics; - Opts.ShowFixits = !NoDiagnosticsFixIt; - Opts.ShowSourceRanges = PrintSourceRangeInfo; - Opts.ShowOptionNames = PrintDiagnosticOption; - Opts.ShowColors = PrintColorDiagnostic; - Opts.MessageLength = MessageLength; -} - static void FinalizeCompileOptions(CompileOptions &Opts, const LangOptions &Lang) { if (Lang.NoBuiltin) @@ -1323,7 +1269,7 @@ int main(int argc, char **argv) { // Construct the diagnostic options first, which cannot fail, so that we can // build a diagnostic client to use for any errors during option handling. DiagnosticOptions DiagOpts; - ConstructDiagnosticOptions(DiagOpts); + InitializeDiagnosticOptions(DiagOpts); // Create the diagnostic client for reporting errors or for // implementing -verify.