From: Sandra Loosemore <sandra@codesourcery.com>
To: "gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
"fortran@gcc.gnu.org" <fortran@gcc.gnu.org>,
Tobias Burnus <tobias@codesourcery.com>
Subject: [PATCH, Fortran] set version field in CFI_cdesc_t to CFI_VERSION
Date: Thu, 1 Jul 2021 00:00:44 -0600 [thread overview]
Message-ID: <f4f6b3f1-e98a-f01e-7012-cb010760a597@codesourcery.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 549 bytes --]
This patch fixes the failures in interoperability/fc-descriptor-8.f90 in
my just-posted TS 29113 testsuite:
https://gcc.gnu.org/pipermail/gcc-patches/2021-July/574115.html
The problem here is that the routines that copy between GFC and CFI
descriptors think they both use the same version number conventions, but
the GFC descriptors' version is zero-initialized elsewhere and
CFI_VERSION is defined to be 1. It seems incorrect to expect the
internal and external descriptor ABIs to be in lock step together anyway.
OK to check in?
-Sandra
[-- Attachment #2: cfi-version.patch --]
[-- Type: text/x-patch, Size: 1701 bytes --]
commit b0edc2d3287d6ed52a43010b92c4158c6208ef11
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Wed Jun 30 19:28:22 2021 -0700
Fortran: set version field in CFI_cdesc_t to CFI_VERSION
When converting a GFC descriptor to a CFI descriptor, it was
incorrectly copying the version number from the former to the latter.
It should be using the value of CFI_VERSION instead (currently 1).
Going the other direction, the GFC version field is initialized to
zero elsewhere, so do that here too.
2021-06-30 Tobias Burnus <tobias@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
libgfortran/
* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc):
Initialize version field to 0.
(gfc_desc_to_cfi_desc): Initialize version field to CFI_VERSION.
diff --git a/libgfortran/runtime/ISO_Fortran_binding.c b/libgfortran/runtime/ISO_Fortran_binding.c
index 0978832..73fb4c4 100644
--- a/libgfortran/runtime/ISO_Fortran_binding.c
+++ b/libgfortran/runtime/ISO_Fortran_binding.c
@@ -60,7 +60,7 @@ cfi_desc_to_gfc_desc (gfc_array_void *d, CFI_cdesc_t **s_ptr)
else
GFC_DESCRIPTOR_SIZE (d) = s->elem_len;
- d->dtype.version = s->version;
+ d->dtype.version = 0;
GFC_DESCRIPTOR_RANK (d) = (signed char)s->rank;
d->dtype.attribute = (signed short)s->attribute;
@@ -104,7 +104,7 @@ gfc_desc_to_cfi_desc (CFI_cdesc_t **d_ptr, const gfc_array_void *s)
d->base_addr = GFC_DESCRIPTOR_DATA (s);
d->elem_len = GFC_DESCRIPTOR_SIZE (s);
- d->version = s->dtype.version;
+ d->version = CFI_VERSION;
d->rank = (CFI_rank_t)GFC_DESCRIPTOR_RANK (s);
d->attribute = (CFI_attribute_t)s->dtype.attribute;
next reply other threads:[~2021-07-01 6:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-01 6:00 Sandra Loosemore [this message]
2021-07-01 7:26 ` Tobias Burnus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f4f6b3f1-e98a-f01e-7012-cb010760a597@codesourcery.com \
--to=sandra@codesourcery.com \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=tobias@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).