[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)
Sean Perry via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 28 14:00:38 PDT 2025
================
@@ -5087,6 +5087,19 @@ Decl *Sema::ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS,
assert(EllipsisLoc.isInvalid() &&
"Friend ellipsis but not friend-specified?");
+ if (DS.isExportSpecified()) {
+ VisibilityAttr *existingAttr = TagD->getAttr<VisibilityAttr>();
+ if (existingAttr) {
+ VisibilityAttr::VisibilityType existingValue =
+ existingAttr->getVisibility();
+ if (existingValue != VisibilityAttr::Default)
+ Diag(DS.getExportSpecLoc(), diag::err_mismatched_visibility);
+ } else {
+ Tag->addAttr(
----------------
perry-ca wrote:
When -fvisibility=hidden (which is the default on z/OS), etc this is needed to ensure the symbol is exported. This is analogous to a declaration with the default visibility attribute specified.
https://github.com/llvm/llvm-project/pull/111035
More information about the cfe-commits
mailing list