summaryrefslogtreecommitdiffstats
path: root/clang/tools/driver/driver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/driver/driver.cpp')
-rw-r--r--clang/tools/driver/driver.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 43dd36963c6..dbfc2936556 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -178,6 +178,9 @@ void ApplyQAOverride(std::vector<const char*> &Args, const char *OverrideStr,
}
}
+extern int cc1_main(Diagnostic &Diags,
+ const char **ArgBegin, const char **ArgEnd);
+
int main(int argc, const char **argv) {
llvm::sys::PrintStackTraceOnErrorSignal();
llvm::PrettyStackTraceProgram X(argc, argv);
@@ -187,6 +190,10 @@ int main(int argc, const char **argv) {
Diagnostic Diags(&DiagClient);
+ // Dispatch to cc1_main if appropriate.
+ if (argc > 1 && llvm::StringRef(argv[1]) == "-cc1")
+ return cc1_main(Diags, argv+2, argv+argc);
+
#ifdef CLANG_IS_PRODUCTION
bool IsProduction = true;
#else
OpenPOWER on IntegriCloud