forked from OSchip/llvm-project
Change Clang's __VERSION__ to include the same basic info as in clang -v.
- Please never ever ever ever write a tool that sniffs this. llvm-svn: 128599
This commit is contained in:
parent
1a93b3b080
commit
3b17a865bb
|
@ -58,6 +58,11 @@ namespace clang {
|
|||
/// which includes the clang version number, the repository version,
|
||||
/// and the vendor tag.
|
||||
std::string getClangFullVersion();
|
||||
|
||||
/// \brief Retrieves a string representing the complete clang version suitable
|
||||
/// for use in the CPP __VERSION__ macro, which includes the clang version
|
||||
/// number, the repository version, and the vendor tag.
|
||||
std::string getClangFullCPPVersion();
|
||||
}
|
||||
|
||||
#endif // LLVM_CLANG_BASIC_VERSION_H
|
||||
|
|
|
@ -91,4 +91,17 @@ std::string getClangFullVersion() {
|
|||
return OS.str();
|
||||
}
|
||||
|
||||
std::string getClangFullCPPVersion() {
|
||||
// The version string we report in __VERSION__ is just a compacted version of
|
||||
// the one we report on the command line.
|
||||
std::string buf;
|
||||
llvm::raw_string_ostream OS(buf);
|
||||
#ifdef CLANG_VENDOR
|
||||
OS << CLANG_VENDOR;
|
||||
#endif
|
||||
OS << "Clang " CLANG_VERSION_STRING " ("
|
||||
<< getClangFullRepositoryVersion() << ')';
|
||||
return OS.str();
|
||||
}
|
||||
|
||||
} // end namespace clang
|
||||
|
|
|
@ -247,7 +247,12 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
|
|||
Builder.defineMacro("__GNUC_PATCHLEVEL__", "1");
|
||||
Builder.defineMacro("__GNUC__", "4");
|
||||
Builder.defineMacro("__GXX_ABI_VERSION", "1002");
|
||||
Builder.defineMacro("__VERSION__", "\"4.2.1 Compatible Clang Compiler\"");
|
||||
|
||||
// As sad as it is, enough software depends on the __VERSION__ for version
|
||||
// checks that it is necessary to report 4.2.1 (the base GCC version we claim
|
||||
// compatibility with) first.
|
||||
Builder.defineMacro("__VERSION__", "\"4.2.1 Compatible " +
|
||||
llvm::Twine(getClangFullCPPVersion()) + "\"");
|
||||
|
||||
// Initialize language-specific preprocessor defines.
|
||||
|
||||
|
|
|
@ -982,7 +982,7 @@
|
|||
// SPARC:#define __SIZE_WIDTH__ 32
|
||||
// SPARC:#define __UINTMAX_TYPE__ long long unsigned int
|
||||
// SPARC:#define __USER_LABEL_PREFIX__ _
|
||||
// SPARC:#define __VERSION__ "4.2.1 Compatible Clang Compiler"
|
||||
// SPARC:#define __VERSION__ "4.2.1 Compatible
|
||||
// SPARC:#define __WCHAR_MAX__ 2147483647
|
||||
// SPARC:#define __WCHAR_TYPE__ int
|
||||
// SPARC:#define __WCHAR_WIDTH__ 32
|
||||
|
|
Loading…
Reference in New Issue