summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Silva <chisophugis@gmail.com>2014-08-15 18:50:00 +0000
committerSean Silva <chisophugis@gmail.com>2014-08-15 18:50:00 +0000
commit2103c38a998f6b3d8860baee00e3f0c4472f782c (patch)
tree674d4bbecc15d3b3b8ed205cd83e6cd229f846a8
parentdb36dc23e4ee80862e0d1cc26adbfa4a87c4af9d (diff)
downloadbcm5719-llvm-2103c38a998f6b3d8860baee00e3f0c4472f782c.tar.gz
bcm5719-llvm-2103c38a998f6b3d8860baee00e3f0c4472f782c.zip
[cleanup] Factor out some checks. NFC.
The core logic in main() is actually pretty simple, but there's lots of stuff that has been added over time which obscures the flow of the code. In upcoming patches, I'll be pulling more stuff out of the main codepath. I'm open to naming suggestions for these helper functions. llvm-svn: 215751
-rw-r--r--clang/tools/driver/driver.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 9f93837c2c7..2540aaf3d4f 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -293,6 +293,23 @@ namespace {
};
}
+static void HandleDriverEnvVars(Driver &TheDriver) {
+ // Handle CC_PRINT_OPTIONS and CC_PRINT_OPTIONS_FILE.
+ TheDriver.CCPrintOptions = !!::getenv("CC_PRINT_OPTIONS");
+ if (TheDriver.CCPrintOptions)
+ TheDriver.CCPrintOptionsFilename = ::getenv("CC_PRINT_OPTIONS_FILE");
+
+ // Handle CC_PRINT_HEADERS and CC_PRINT_HEADERS_FILE.
+ TheDriver.CCPrintHeaders = !!::getenv("CC_PRINT_HEADERS");
+ if (TheDriver.CCPrintHeaders)
+ TheDriver.CCPrintHeadersFilename = ::getenv("CC_PRINT_HEADERS_FILE");
+
+ // Handle CC_LOG_DIAGNOSTICS and CC_LOG_DIAGNOSTICS_FILE.
+ TheDriver.CCLogDiagnostics = !!::getenv("CC_LOG_DIAGNOSTICS");
+ if (TheDriver.CCLogDiagnostics)
+ TheDriver.CCLogDiagnosticsFilename = ::getenv("CC_LOG_DIAGNOSTICS_FILE");
+}
+
int main(int argc_, const char **argv_) {
llvm::sys::PrintStackTraceOnErrorSignal();
llvm::PrettyStackTraceProgram X(argc_, argv_);
@@ -396,20 +413,7 @@ int main(int argc_, const char **argv_) {
llvm::InitializeAllTargets();
ParseProgName(argv, SavedStrings, TheDriver);
- // Handle CC_PRINT_OPTIONS and CC_PRINT_OPTIONS_FILE.
- TheDriver.CCPrintOptions = !!::getenv("CC_PRINT_OPTIONS");
- if (TheDriver.CCPrintOptions)
- TheDriver.CCPrintOptionsFilename = ::getenv("CC_PRINT_OPTIONS_FILE");
-
- // Handle CC_PRINT_HEADERS and CC_PRINT_HEADERS_FILE.
- TheDriver.CCPrintHeaders = !!::getenv("CC_PRINT_HEADERS");
- if (TheDriver.CCPrintHeaders)
- TheDriver.CCPrintHeadersFilename = ::getenv("CC_PRINT_HEADERS_FILE");
-
- // Handle CC_LOG_DIAGNOSTICS and CC_LOG_DIAGNOSTICS_FILE.
- TheDriver.CCLogDiagnostics = !!::getenv("CC_LOG_DIAGNOSTICS");
- if (TheDriver.CCLogDiagnostics)
- TheDriver.CCLogDiagnosticsFilename = ::getenv("CC_LOG_DIAGNOSTICS_FILE");
+ HandleDriverEnvVars(TheDriver);
std::unique_ptr<Compilation> C(TheDriver.BuildCompilation(argv));
int Res = 0;
OpenPOWER on IntegriCloud