[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-07 Thread Sean Perry via cfe-commits
https://github.com/perry-ca updated https://github.com/llvm/llvm-project/pull/111035 >From e8d355c9cd165e0a255bbbfb5b0126cf7b1461a6 Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Wed, 2 Oct 2024 12:56:43 -0500 Subject: [PATCH 1/9] initial work for pragma export & _Export keyword --- clang/in

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-13 Thread Sean Perry via cfe-commits
@@ -1273,6 +1273,168 @@ void Sema::AddImplicitMSFunctionNoBuiltinAttr(FunctionDecl *FD) { FD->addAttr(NoBuiltinAttr::CreateImplicit(Context, V.data(), V.size())); } +static bool typeListMatches(FunctionDecl *FD, +const clang::Sema::SymbolLabel

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-12 Thread Sean Perry via cfe-commits
@@ -1273,6 +1273,168 @@ void Sema::AddImplicitMSFunctionNoBuiltinAttr(FunctionDecl *FD) { FD->addAttr(NoBuiltinAttr::CreateImplicit(Context, V.data(), V.size())); } +static bool typeListMatches(FunctionDecl *FD, +const clang::Sema::SymbolLabel

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-12 Thread Sean Perry via cfe-commits
@@ -1906,6 +1906,36 @@ class Sema final : public SemaBase { ActOnPragmaMSFunction(SourceLocation Loc, const llvm::SmallVectorImpl &NoBuiltins); + /// A label from a C++ #pragma export, for a symbol that we + /// haven't seen the declaration for yet.

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-12 Thread Sean Perry via cfe-commits
@@ -1906,6 +1906,36 @@ class Sema final : public SemaBase { ActOnPragmaMSFunction(SourceLocation Loc, const llvm::SmallVectorImpl &NoBuiltins); + /// A label from a C++ #pragma export, for a symbol that we + /// haven't seen the declaration for yet.

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-12 Thread Sean Perry via cfe-commits
@@ -5722,6 +5723,7 @@ TypeSourceInfo *Sema::GetTypeForDeclarator(Declarator &D) { TypeSourceInfo *ReturnTypeInfo = nullptr; QualType T = GetDeclSpecTypeForDeclarator(state, ReturnTypeInfo); + fprintf(stderr, "SDP: === GetTypeForDeclarator\n"); T->dump(); fprintf(stderr,

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-12 Thread Sean Perry via cfe-commits
https://github.com/perry-ca edited https://github.com/llvm/llvm-project/pull/111035 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [z/OS] Add option to target older versions of LE on z/OS (PR #123399)

2025-02-21 Thread Sean Perry via cfe-commits
https://github.com/perry-ca closed https://github.com/llvm/llvm-project/pull/123399 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-04-04 Thread Sean Perry via cfe-commits
@@ -0,0 +1,5 @@ +// REQUIRES: systemz-registered-target perry-ca wrote: The `int _Export x, y;` is tested in attr-export.cpp ``` int _Export var3, var4, _Export var5; ``` https://github.com/llvm/llvm-project/pull/111035 __

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-09 Thread Sean Perry via cfe-commits
@@ -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(); +if

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-20 Thread Sean Perry via cfe-commits
@@ -7552,6 +7552,27 @@ attribute requires a string literal argument to identify the handle being releas }]; } +def zOSExportDocs : Documentation { + let Category = DocCatFunction; + let Content = [{ +Use the ``_Export`` keyword on a function or external variable to declar

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-20 Thread Sean Perry via cfe-commits
@@ -4504,6 +4504,11 @@ void Parser::ParseDeclarationSpecifiers( isInvalid = DS.setFunctionSpecNoreturn(Loc, PrevSpec, DiagID); break; +case tok::kw__Export: + // We're done with the declaration-specifiers. + goto DoneWithDeclSpec; per

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-20 Thread Sean Perry via cfe-commits
@@ -7552,6 +7552,27 @@ attribute requires a string literal argument to identify the handle being releas }]; } +def zOSExportDocs : Documentation { + let Category = DocCatFunction; + let Content = [{ +Use the ``_Export`` keyword on a function or external variable to declar

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-20 Thread Sean Perry via cfe-commits
@@ -1400,6 +1416,171 @@ bool Parser::HandlePragmaMSAllocText(StringRef PragmaName, return true; } +NestedNameSpecifier * +Parser::zOSParseIdentifier(StringRef PragmaName, + const IdentifierInfo *IdentName) { + NestedNameSpecifier *NestedId = nullp

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-20 Thread Sean Perry via cfe-commits
@@ -401,6 +401,12 @@ struct PragmaMaxTokensTotalHandler : public PragmaHandler { Token &FirstToken) override; }; +struct PragmaExportHandler : public PragmaHandler { perry-ca wrote: Ok. Multiple requests now. I'll move the keyword _Expor

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-20 Thread Sean Perry via cfe-commits
@@ -4504,6 +4504,11 @@ void Parser::ParseDeclarationSpecifiers( isInvalid = DS.setFunctionSpecNoreturn(Loc, PrevSpec, DiagID); break; +case tok::kw__Export: + // We're done with the declaration-specifiers. + goto DoneWithDeclSpec; per

[clang] replace the extension with the right functions (PR #141110)

2025-05-25 Thread Sean Perry via cfe-commits
https://github.com/perry-ca closed https://github.com/llvm/llvm-project/pull/141110 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-05-27 Thread Sean Perry via cfe-commits
https://github.com/perry-ca edited https://github.com/llvm/llvm-project/pull/111035 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Implement _Export keyword (PR #140944)

2025-05-21 Thread Sean Perry via cfe-commits
https://github.com/perry-ca edited https://github.com/llvm/llvm-project/pull/140944 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Implement _Export keyword (PR #140944)

2025-05-21 Thread Sean Perry via cfe-commits
perry-ca wrote: > I am not seeing any syntax tests for `_Export` in disallowed positions. For > example: > > ```c++ > int _Export *x = 0; > ``` > > It's not the end of the world if it happens to be accepted, but it is > potentially worth noting. I'll add a few tests. https://github.com/llvm

[clang] [SystemZ][z/OS] Implement _Export keyword (PR #140944)

2025-05-21 Thread Sean Perry via cfe-commits
https://github.com/perry-ca updated https://github.com/llvm/llvm-project/pull/140944 >From 7e3ff9fbe877ab54fd16bd41e26f32798f0ab430 Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Wed, 21 May 2025 18:02:26 + Subject: [PATCH 1/2] Implement _Export keyword --- clang/docs/ReleaseNotes.rst

[clang] [SystemZ][z/OS] Implement _Export keyword (PR #140944)

2025-05-21 Thread Sean Perry via cfe-commits
https://github.com/perry-ca created https://github.com/llvm/llvm-project/pull/140944 Implement the _Export keyword that is used on z/OS to indicate that a symbol with external linkage is to be exported from the shared library. In the XL C/C++ compiler this keyword is used only in C++ source c

[clang] [SystemZ][zOS] disable _Float16 support on z/OS (PR #145532)

2025-06-24 Thread Sean Perry via cfe-commits
https://github.com/perry-ca created https://github.com/llvm/llvm-project/pull/145532 The new half float type (aka _Float16 ) isn't supported on z/OS. >From 42c7e584ab1faa7dd07921a7de79d96d052a6949 Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Tue, 24 Jun 2025 11:26:57 -0400 Subject: [PATCH]

[clang] [llvm] [SystemZ][z/OS] Refactor AutoConvert.h to remove large MVS guard (PR #143174)

2025-06-09 Thread Sean Perry via cfe-commits
@@ -5199,13 +5199,13 @@ static void flush_atexit(void) { int main(int argc, const char **argv) { thread_info client_data; -#ifdef __MVS__ + // On z/OS we need to enable auto conversion if (enablezOSAutoConversion(fileno(stdout)) == -1) perry-ca wrote: I

[clang] [llvm] [SystemZ][z/OS] Refactor AutoConvert.h to remove large MVS guard (PR #143174)

2025-06-09 Thread Sean Perry via cfe-commits
@@ -11,30 +11,37 @@ // //===--===// -#ifdef __MVS__ perry-ca wrote: See my previous comment. If we write the interface in AutoConvert.h so the functions are inline functions that do nothin

[clang] [llvm] [SystemZ][z/OS] Refactor AutoConvert.h to remove large MVS guard (PR #143174)

2025-06-09 Thread Sean Perry via cfe-commits
@@ -25,6 +26,16 @@ #define CCSID_UTF_8 1208 #define CCSID_ISO8859_1 819 +#ifndef STDIN_FILENO +#define STDIN_FILENO 0 +#endif +#ifndef STDOUT_FILENO +#define STDOUT_FILENO 1 +#endif +#ifndef STDERR_FILENO +#define STDERR_FILENO 2 +#endif perry-ca wrote: I'd s

[clang] [llvm] [SystemZ][z/OS] Refactor AutoConvert.h to remove large MVS guard (PR #143174)

2025-06-09 Thread Sean Perry via cfe-commits
@@ -516,7 +514,7 @@ getOpenFileImpl(sys::fs::file_t FD, const Twine &Filename, uint64_t FileSize, // off the stream. // Note: This only works with the assumption of reading a full file (i.e, // Offset == 0 and MapSize == FileSize). Reading a file slice does not work. -

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-26 Thread Sean Perry via cfe-commits
https://github.com/perry-ca updated https://github.com/llvm/llvm-project/pull/141671 >From 33413248f61e899f6d4dbbddec9c1cec7bf0e44a Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Fri, 23 May 2025 04:36:46 + Subject: [PATCH 1/4] #pragma export support --- clang/docs/ReleaseNotes.rst

[clang] [SystemZ][zOS] disable _Float16 support on z/OS (PR #145532)

2025-06-25 Thread Sean Perry via cfe-commits
https://github.com/perry-ca updated https://github.com/llvm/llvm-project/pull/145532 >From 42c7e584ab1faa7dd07921a7de79d96d052a6949 Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Tue, 24 Jun 2025 11:26:57 -0400 Subject: [PATCH 1/2] disable _Float16 support on z/OS --- clang/lib/Basic/Targets

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-26 Thread Sean Perry via cfe-commits
https://github.com/perry-ca updated https://github.com/llvm/llvm-project/pull/141671 >From 33413248f61e899f6d4dbbddec9c1cec7bf0e44a Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Fri, 23 May 2025 04:36:46 + Subject: [PATCH 1/3] #pragma export support --- clang/docs/ReleaseNotes.rst

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-26 Thread Sean Perry via cfe-commits
@@ -568,6 +574,11 @@ void Parser::initializePragmaHandlers() { MaxTokensTotalPragmaHandler = std::make_unique(); PP.AddPragmaHandler("clang", MaxTokensTotalPragmaHandler.get()); + if (getLangOpts().ZOSExt) { perry-ca wrote: This pragma duplicates on a l

[clang] [SystemZ][zOS] disable _Float16 support on z/OS (PR #145532)

2025-06-26 Thread Sean Perry via cfe-commits
https://github.com/perry-ca closed https://github.com/llvm/llvm-project/pull/145532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Implement _Export keyword (PR #140944)

2025-06-26 Thread Sean Perry via cfe-commits
perry-ca wrote: gentle ping. Thanks https://github.com/llvm/llvm-project/pull/140944 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-26 Thread Sean Perry via cfe-commits
perry-ca wrote: > I only made it through the first bit of hte implementation, but parsing > doesn't seem right to me, it doesn't recovery nicely as far as I can tell. > > AS far as the design here, it isn't clear to me how this manages all of the > C++ lookup/scoping/etc, and I don't see how t

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-27 Thread Sean Perry via cfe-commits
https://github.com/perry-ca updated https://github.com/llvm/llvm-project/pull/141671 >From 33413248f61e899f6d4dbbddec9c1cec7bf0e44a Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Fri, 23 May 2025 04:36:46 + Subject: [PATCH 1/5] #pragma export support --- clang/docs/ReleaseNotes.rst

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-27 Thread Sean Perry via cfe-commits
@@ -1395,6 +1411,171 @@ bool Parser::HandlePragmaMSAllocText(StringRef PragmaName, return true; } +NestedNameSpecifier * +Parser::zOSParseIdentifier(StringRef PragmaName, + const IdentifierInfo *IdentName) { + NestedNameSpecifier *NestedId = nullp

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-27 Thread Sean Perry via cfe-commits
https://github.com/perry-ca edited https://github.com/llvm/llvm-project/pull/141671 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][z/OS] Implement #pragma export (PR #141671)

2025-06-27 Thread Sean Perry via cfe-commits
https://github.com/perry-ca edited https://github.com/llvm/llvm-project/pull/141671 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SystemZ][zOS] disable _Float16 support on z/OS (PR #145532)

2025-06-25 Thread Sean Perry via cfe-commits
perry-ca wrote: > I guess this is fine with me if this is what you want for z/OS. Note that on > Linux, _Float16 also wasn't supported previously, we've made the choice to > add it. We don't see any reason not to support this either. However, we need to first update the z/OS ABI to ensure no

<    1   2