mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
[clang] Add getClangVendor() and use it in CodeGenModule.cpp (#75935)
In9a38a72f1d`ProductId` was assigned from the stringified value of `CLANG_VENDOR`, if that macro was defined. However, `CLANG_VENDOR` is supposed to be a string, as it is defined (optionally) as such in the top-level clang `CMakeLists.txt`. Furthermore, `CLANG_VENDOR` is only passed as a build-time define when compiling `Version.cpp`, so add a `getClangVendor()` function to `Version.h`, and use it in `CodegGenModule.cpp`, instead of relying on the macro. Fixes:9a38a72f1d
This commit is contained in:
@@ -40,6 +40,9 @@ namespace clang {
|
||||
/// string as getClangRevision.
|
||||
std::string getLLVMRevision();
|
||||
|
||||
/// Retrieves the Clang vendor tag.
|
||||
std::string getClangVendor();
|
||||
|
||||
/// Retrieves the full repository version that is an amalgamation of
|
||||
/// the information in getClangRepositoryPath() and getClangRevision().
|
||||
std::string getClangFullRepositoryVersion();
|
||||
|
||||
@@ -57,6 +57,14 @@ std::string getLLVMRevision() {
|
||||
#endif
|
||||
}
|
||||
|
||||
std::string getClangVendor() {
|
||||
#ifdef CLANG_VENDOR
|
||||
return CLANG_VENDOR;
|
||||
#else
|
||||
return "";
|
||||
#endif
|
||||
}
|
||||
|
||||
std::string getClangFullRepositoryVersion() {
|
||||
std::string buf;
|
||||
llvm::raw_string_ostream OS(buf);
|
||||
@@ -92,10 +100,7 @@ std::string getClangFullVersion() {
|
||||
std::string getClangToolFullVersion(StringRef ToolName) {
|
||||
std::string buf;
|
||||
llvm::raw_string_ostream OS(buf);
|
||||
#ifdef CLANG_VENDOR
|
||||
OS << CLANG_VENDOR;
|
||||
#endif
|
||||
OS << ToolName << " version " CLANG_VERSION_STRING;
|
||||
OS << getClangVendor() << ToolName << " version " CLANG_VERSION_STRING;
|
||||
|
||||
std::string repo = getClangFullRepositoryVersion();
|
||||
if (!repo.empty()) {
|
||||
@@ -110,10 +115,7 @@ std::string getClangFullCPPVersion() {
|
||||
// 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;
|
||||
OS << getClangVendor() << "Clang " CLANG_VERSION_STRING;
|
||||
|
||||
std::string repo = getClangFullRepositoryVersion();
|
||||
if (!repo.empty()) {
|
||||
|
||||
@@ -995,12 +995,7 @@ void CodeGenModule::Release() {
|
||||
uint32_t(CLANG_VERSION_MINOR));
|
||||
getModule().addModuleFlag(llvm::Module::Warning, "zos_product_patchlevel",
|
||||
uint32_t(CLANG_VERSION_PATCHLEVEL));
|
||||
std::string ProductId;
|
||||
#ifdef CLANG_VENDOR
|
||||
ProductId = #CLANG_VENDOR;
|
||||
#else
|
||||
ProductId = "clang";
|
||||
#endif
|
||||
std::string ProductId = getClangVendor() + "clang";
|
||||
getModule().addModuleFlag(llvm::Module::Error, "zos_product_id",
|
||||
llvm::MDString::get(VMContext, ProductId));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user