[cfe-commits] r86697 - /cfe/trunk/tools/driver/driver.cpp
Daniel Dunbar
daniel at zuster.org
Tue Nov 10 10:47:41 PST 2009
Author: ddunbar
Date: Tue Nov 10 12:47:41 2009
New Revision: 86697
URL: http://llvm.org/viewvc/llvm-project?rev=86697&view=rev
Log:
Driver: Run 'clang' in C++ mode based on the name it was invoked by. We match
anything that ends with ++ or ++-FOO (e.g., c++, clang++, clang++-1.1) as being
a "C++ compiler".
This allows easy testing of the C++ compiler by 'ln -s clang clang++', or by 'cp
clang clang++'.
Based on patch by Roman Divacky.
Modified:
cfe/trunk/tools/driver/driver.cpp
Modified: cfe/trunk/tools/driver/driver.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/driver.cpp?rev=86697&r1=86696&r2=86697&view=diff
==============================================================================
--- cfe/trunk/tools/driver/driver.cpp (original)
+++ cfe/trunk/tools/driver/driver.cpp Tue Nov 10 12:47:41 2009
@@ -197,6 +197,15 @@
llvm::sys::getHostTriple().c_str(),
"a.out", IsProduction, Diags);
+ // Check for ".*++" or ".*++-[^-]*" to determine if we are a C++
+ // compiler. This matches things like "c++", "clang++", and "clang++-1.1".
+ //
+ // Note that we intentionally want to use argv[0] here, to support "clang++"
+ // being a symlink.
+ llvm::StringRef ProgName(llvm::sys::Path(argv[0]).getBasename());
+ if (ProgName.endswith("++") || ProgName.rsplit('-').first.endswith("++"))
+ TheDriver.CCCIsCXX = true;
+
llvm::OwningPtr<Compilation> C;
// Handle QA_OVERRIDE_GCC3_OPTIONS and CCC_ADD_ARGS, used for editing a
More information about the cfe-commits
mailing list