Am 11.07.2017 um 16:48 schrieb Jerry DeLisle:

Somewhere in the threads on this, there was mentioned ABI breakage/change.

That was me.

Does it really do this?

Yes. Look at this part:

Index: libgfortran/libgfortran.h
===================================================================
*** libgfortran/libgfortran.h    (revision 250082)
--- libgfortran/libgfortran.h    (working copy)
*************** struct {\
*** 339,344 ****
--- 339,345 ----
    type *base_addr;\
    size_t offset;\
    index_type dtype;\
+   index_type span;\
    descriptor_dimension dim[r];\
  }

> If the significant change is in the descriptor and you
> just added the span on the end of the structure, I am not convinced this is an > issue. (I have not studied the patch at all, I would rather not bump library
> version)

Unless I am mistaken, we only build the required dimensions for
an array descriptor. Putting it on the end would not work
unless we changed that behavior.

But we are doing something wrong with the array descriptors anyway. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68649#c7 for a description.
Other comments in the same PR have some suggestions, but nothing that
works (or so I think).

So, if we do break the ABI, we could try to fix the remaining
issues with the array descriptors - not with this patch, but
before 8.1 is released. Flexible array members come to mind.

Regards

        Thomas

Reply via email to