diff options
Diffstat (limited to 'clang/tools/clang-cc/Options.cpp')
| -rw-r--r-- | clang/tools/clang-cc/Options.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/clang/tools/clang-cc/Options.cpp b/clang/tools/clang-cc/Options.cpp index 33b8d77d158..3c57479b92a 100644 --- a/clang/tools/clang-cc/Options.cpp +++ b/clang/tools/clang-cc/Options.cpp @@ -26,6 +26,7 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringMap.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/RegistryParser.h" #include <stdio.h> using namespace clang; @@ -383,6 +384,11 @@ OutputFile("o", llvm::cl::value_desc("path"), llvm::cl::desc("Specify output file")); +static llvm::cl::opt<std::string> +PluginActionName("plugin", + llvm::cl::desc("Use the named plugin action " + "(use \"help\" to list available options)")); + static llvm::cl::opt<ActionKind> ProgAction(llvm::cl::desc("Choose output type:"), llvm::cl::ZeroOrMore, llvm::cl::init(ParseSyntaxOnly), @@ -885,12 +891,18 @@ void clang::InitializeDiagnosticOptions(DiagnosticOptions &Opts) { void clang::InitializeFrontendOptions(FrontendOptions &Opts) { using namespace frontendoptions; + // Select program action. + Opts.ProgramAction = ProgAction; + if (PluginActionName.getPosition()) { + Opts.ProgramAction = frontend::PluginAction; + Opts.ActionName = PluginActionName; + } + Opts.CodeCompletionAt = CodeCompletionAt; Opts.DebugCodeCompletionPrinter = CodeCompletionDebugPrinter; Opts.DisableFree = DisableFree; Opts.EmptyInputOnly = EmptyInputOnly; Opts.FixItLocations = FixItAtLocations; - Opts.ProgramAction = ProgAction; Opts.OutputFile = OutputFile; Opts.RelocatablePCH = RelocatablePCH; Opts.ShowMacrosInCodeCompletion = CodeCompletionWantsMacros; |

