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