[llvm] [clang] [SystemZ][z/OS] This change adds support for the PPA2 section in zOS (PR #68926)
Ulrich Weigand via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 22 06:07:14 PST 2023
================
@@ -976,6 +976,46 @@ void CodeGenModule::Release() {
Context.getTypeSizeInChars(Context.getWideCharType()).getQuantity();
getModule().addModuleFlag(llvm::Module::Error, "wchar_size", WCharWidth);
+ if (getTriple().isOSzOS()) {
+ getModule().addModuleFlag(llvm::Module::Warning,
+ "zos_product_major_version",
+ uint32_t(CLANG_VERSION_MAJOR));
+ getModule().addModuleFlag(llvm::Module::Warning,
+ "zos_product_minor_version",
+ 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
+ // Remove - from Product Id, which makes it consistent with legacy.
+ std::size_t DashFound = ProductId.find("-");
+ if (DashFound != std::string::npos)
+ ProductId.erase(ProductId.begin() + DashFound);
----------------
uweigand wrote:
Now that this code is moved here, it could only make a difference when compiling clang with a `CLANG_VENDOR` containing a dash. If that is a problem for your use case, then why not simply build with the desired `CLANG_VENDOR` to begin with? It's a bit unclear to me which general problem this code solves at this place now.
https://github.com/llvm/llvm-project/pull/68926
More information about the cfe-commits
mailing list