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
@@ -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
@@ -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
@@ -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.
@@ -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.
@@ -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,
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
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
@@ -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
__
@@ -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
@@ -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
@@ -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
@@ -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
@@ -1400,6 +1416,171 @@ bool Parser::HandlePragmaMSAllocText(StringRef
PragmaName,
return true;
}
+NestedNameSpecifier *
+Parser::zOSParseIdentifier(StringRef PragmaName,
+ const IdentifierInfo *IdentName) {
+ NestedNameSpecifier *NestedId = nullp
@@ -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
@@ -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
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
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
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
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
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
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
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]
@@ -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
@@ -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
@@ -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
@@ -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.
-
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
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
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
@@ -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
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
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
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
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
@@ -1395,6 +1411,171 @@ bool Parser::HandlePragmaMSAllocText(StringRef
PragmaName,
return true;
}
+NestedNameSpecifier *
+Parser::zOSParseIdentifier(StringRef PragmaName,
+ const IdentifierInfo *IdentName) {
+ NestedNameSpecifier *NestedId = nullp
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
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
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
101 - 139 of 139 matches
Mail list logo