Am 22.01.2018 um 20:59 schrieb Janne Blomqvist:
On Mon, Jan 22, 2018 at 9:12 PM, Paul Richard Thomas
<paul.richard.tho...@gmail.com> wrote:
This patch has been triggered by Thomas's recent message to the list.
Not only did I start work late relative to stage 3 but debugging took
somewhat longer than anticipated. Therefore, to get this committed
asap, we will have to beg the indulgence of the release managers and
prompt review and/or testing by fortran maintainers. (Dominique has
already undertaken to test -m32.)

I think that if we can "guarantee" that we're happy with the current
ABI for GCC 9 (and hopefully 10, 11, ...?) we have a quite strong case
for committing it now. But if anybody if planning on doing some
ABI-breaking work in the foreseeable future then maybe we should wait
until GCC 9 stage1 opens. Anybody with such plans?

For asynchronous I/O, we could add a pointer to void (unused at
present) for later use.  That's all from my side.


It should be noted that some of the intrinsics, which use switch/case
for the type/kind selection, limit the effective element size that
they handle to the maximum value of size_t, less 7 bits. A bit of
straightforward work there would fix this limitation and would allow
the GFC_DTYPE shifts and masks to be eliminated.

Hmm, is this a hidden ABI break, then?

No.

This concerns code like

  type_size = GFC_DTYPE_TYPE_SIZE(array);

  switch(type_size)
    {
    case GFC_DTYPE_LOGICAL_1:
    case GFC_DTYPE_INTEGER_1:
    case GFC_DTYPE_DERIVED_1:
      pack_i1 ((gfc_array_i1 *) ret, (gfc_array_i1 *) array,
               (gfc_array_l1 *) mask, (gfc_array_i1 *) vector);
      return;

for example in patck_generic.c.

I think that, if we commit Paul's patch now, we can then fix these cases
before gcc 8 is released.  This is rather straigtforward.

Regards

        Thomas

Reply via email to