aboutsummaryrefslogtreecommitdiff
path: root/tools/driver/driver.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-11-19 07:37:51 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-11-19 07:37:51 +0000
commit217acbfa3524d5805fda7900b26c1e779443588d (patch)
tree95278f7547e81fe7c5e80dd97953487d677cfbe0 /tools/driver/driver.cpp
parentc06a8d8f3120ac93a36b77a4e59e5ad7c4fa56c9 (diff)
Sketch some 'clang -cc1' support, for testing parts of CompilerInvocation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89333 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/driver/driver.cpp')
-rw-r--r--tools/driver/driver.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/driver/driver.cpp b/tools/driver/driver.cpp
index 43dd36963c..dbfc293655 100644
--- a/tools/driver/driver.cpp
+++ b/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