[cfe-commits] r86697 - /cfe/trunk/tools/driver/driver.cpp
Chris Lattner
clattner at apple.com
Tue Nov 10 13:53:29 PST 2009
On Nov 10, 2009, at 10:47 AM, Daniel Dunbar wrote:
> 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());
I don't think this is safe, the temporary is destroyed at the end of
the statement. Try:
std::string BaseName = llvm::sys::Path(argv[0]).getBasename();
> + llvm::StringRef ProgName(BaseName);
or something.
-Chris
> + 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
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list