Push "clang-is-production" logic up to tools/driver, and make it hittable by
defining the CLANG_IS_PRODUCTION Makefile variable.

llvm-svn: 82583
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 1d72b0d..fd2eb61 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -43,26 +43,28 @@
 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() {