summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-cc/Options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/clang-cc/Options.cpp')
-rw-r--r--clang/tools/clang-cc/Options.cpp14
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;
OpenPOWER on IntegriCloud