diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-10 18:47:41 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-10 18:47:41 +0000 |
commit | 8fa01c8f98ff7c8f40fee5014c9c393d806381a4 (patch) | |
tree | 76f0305a67690d98e30faac0c4eb1e04818382d0 | |
parent | fcb0c3b39b2bf3390ea21749b4a1a8946aa927ed (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86697 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/driver/driver.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/driver/driver.cpp b/tools/driver/driver.cpp index 9d204ce6c0..1947bac99b 100644 --- a/tools/driver/driver.cpp +++ b/tools/driver/driver.cpp @@ -197,6 +197,15 @@ int main(int argc, const char **argv) { 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 |