aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Basic/Version.h4
-rw-r--r--lib/Driver/Driver.cpp5
2 files changed, 8 insertions, 1 deletions
diff --git a/include/clang/Basic/Version.h b/include/clang/Basic/Version.h
index ede68ed50d..05eff65072 100644
--- a/include/clang/Basic/Version.h
+++ b/include/clang/Basic/Version.h
@@ -40,6 +40,10 @@
CLANG_MAKE_VERSION_STRING(CLANG_VERSION_MAJOR,CLANG_VERSION_MINOR)
#endif
+/// \brief A horrible hack to work around projects that depend upon gcc
+/// compatible compilers having versions that resemble gcc.
+#define GCC_COMPAT_VERSION_STRING CLANG_MAKE_VERSION_STRING(4,2)
+
namespace clang {
/// \brief Retrieves the repository path (e.g., Subversion path) that
/// identifies the particular Clang branch, tag, or trunk from which this
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index a3b7167c8b..621ce8dd58 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -417,8 +417,11 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
+ // This is a horrible hack. Some projects depend on gcc-like versions
+ // coming out of gcc -dumpversion to determine if the gcc compatible
+ // compiler has a correct version. Ideally we'd fix all of those projects.
if (C.getArgs().hasArg(options::OPT_dumpversion)) {
- llvm::outs() << CLANG_VERSION_STRING "\n";
+ llvm::outs() << GCC_COMPAT_VERSION_STRING "\n";
return false;
}