summaryrefslogtreecommitdiffstats
path: root/clang/tools/driver/driver.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-09-04 01:37:22 +0000
committerReid Kleckner <reid@kleckner.net>2013-09-04 01:37:22 +0000
commitdc74af1ab8fb0897c7ac2571070130f90462005f (patch)
tree20ac0db6960f3653f92d6f5ccc6cca4899212d64 /clang/tools/driver/driver.cpp
parent8bd0ac113522d44f9ae89940fd11b9a948aa37f9 (diff)
downloadbcm5719-llvm-dc74af1ab8fb0897c7ac2571070130f90462005f.tar.gz
bcm5719-llvm-dc74af1ab8fb0897c7ac2571070130f90462005f.zip
clang-cl: Avoid confusing diagnostics when clang-cl is called just cl.exe
llvm-svn: 189901
Diffstat (limited to 'clang/tools/driver/driver.cpp')
-rw-r--r--clang/tools/driver/driver.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 88863ab0661..15936bf219f 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -346,7 +346,14 @@ int main(int argc_, const char **argv_) {
// DiagnosticOptions instance.
TextDiagnosticPrinter *DiagClient
= new TextDiagnosticPrinter(llvm::errs(), &*DiagOpts);
- DiagClient->setPrefix(llvm::sys::path::filename(Path));
+
+ // If the clang binary happens to be named cl.exe for compatibility reasons,
+ // use clang-cl.exe as the prefix to avoid confusion between clang and MSVC.
+ StringRef ExeBasename(llvm::sys::path::filename(Path));
+ if (ExeBasename.trim().equals_lower("cl.exe"))
+ ExeBasename = "clang-cl.exe";
+ DiagClient->setPrefix(ExeBasename);
+
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagClient);
OpenPOWER on IntegriCloud