aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-22 22:31:13 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-22 22:31:13 +0000
commitf44c58563286bb448a72ed9c9af5f21718633230 (patch)
treead200384952670f06e81202b8596095db80e2814
parente06eafb7714fa20a5491f83921c2e4f9d3f85d5e (diff)
Push "clang-is-production" logic up to tools/driver, and make it hittable by
defining the CLANG_IS_PRODUCTION Makefile variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82583 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Driver/Driver.h2
-rw-r--r--lib/Driver/Driver.cpp28
-rw-r--r--tools/driver/Makefile6
-rw-r--r--tools/driver/driver.cpp7
4 files changed, 28 insertions, 15 deletions
diff --git a/include/clang/Driver/Driver.h b/include/clang/Driver/Driver.h
index 84c373c120..c0327a2f1d 100644
--- a/include/clang/Driver/Driver.h
+++ b/include/clang/Driver/Driver.h
@@ -115,7 +115,7 @@ public:
Driver(const char *_Name, const char *_Dir,
const char *_DefaultHostTriple,
const char *_DefaultImageName,
- Diagnostic &_Diags);
+ bool IsProduction, Diagnostic &_Diags);
~Driver();
/// @name Accessors
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 1d72b0dbd6..fd2eb61f75 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -43,26 +43,28 @@ using namespace clang;
Driver::Driver(const char *_Name, const char *_Dir,
const char *_DefaultHostTriple,
const char *_DefaultImageName,
- Diagnostic &_Diags)
+ bool IsProduction, Diagnostic &_Diags)
: Opts(new OptTable()), Diags(_Diags),
Name(_Name), Dir(_Dir), DefaultHostTriple(_DefaultHostTriple),
DefaultImageName(_DefaultImageName),
Host(0),
CCCIsCXX(false), CCCEcho(false), CCCPrintBindings(false),
CCCGenericGCCName("gcc"), CCCUseClang(true),
-#ifdef USE_PRODUCTION_CLANG
- CCCUseClangCXX(false),
-#else
- CCCUseClangCXX(true),
-#endif
- CCCUseClangCPP(true), CCCUsePCH(true),
+ CCCUseClangCXX(true), CCCUseClangCPP(true), CCCUsePCH(true),
SuppressMissingInputWarning(false) {
-#ifdef USE_PRODUCTION_CLANG
- // In a "production" build, only use clang on architectures we expect to work.
- CCCClangArchs.insert(llvm::Triple::x86);
- CCCClangArchs.insert(llvm::Triple::x86_64);
- CCCClangArchs.insert(llvm::Triple::arm);
-#endif
+ if (IsProduction) {
+ // In a "production" build, only use clang on architectures we expect to
+ // work, and don't use clang C++.
+ //
+ // During development its more convenient to always have the driver use
+ // clang, but we don't want users to be confused when things don't work, or
+ // to file bugs for things we don't support.
+ CCCClangArchs.insert(llvm::Triple::x86);
+ CCCClangArchs.insert(llvm::Triple::x86_64);
+ CCCClangArchs.insert(llvm::Triple::arm);
+
+ CCCUseClangCXX = false;
+ }
}
Driver::~Driver() {
diff --git a/tools/driver/Makefile b/tools/driver/Makefile
index 8e9c291cc8..4b2fb44234 100644
--- a/tools/driver/Makefile
+++ b/tools/driver/Makefile
@@ -21,3 +21,9 @@ LINK_COMPONENTS := system support bitreader bitwriter
USEDLIBS = clangDriver.a clangBasic.a
include $(LEVEL)/Makefile.common
+
+# Translate make variable to define when building a "production" clang.
+ifdef CLANG_IS_PRODUCTION
+CPP.Defines += -DCLANG_IS_PRODUCTION
+endif
+
diff --git a/tools/driver/driver.cpp b/tools/driver/driver.cpp
index a1585009b0..9d204ce6c0 100644
--- a/tools/driver/driver.cpp
+++ b/tools/driver/driver.cpp
@@ -188,9 +188,14 @@ int main(int argc, const char **argv) {
Diagnostic Diags(&DiagClient);
+#ifdef CLANG_IS_PRODUCTION
+ bool IsProduction = true;
+#else
+ bool IsProduction = false;
+#endif
Driver TheDriver(Path.getBasename().c_str(), Path.getDirname().c_str(),
llvm::sys::getHostTriple().c_str(),
- "a.out", Diags);
+ "a.out", IsProduction, Diags);
llvm::OwningPtr<Compilation> C;