[patch, libfortran] Use flexible array members for array descriptor
Thomas Koenig
tkoenig@netcologne.de
Tue Feb 6 22:28:00 GMT 2018
Am 06.02.2018 um 09:53 schrieb Janne Blomqvist:
>>> /* Make the INTEGER*4 array for passing to date_and_time. */
>>> - gfc_array_i4 *avalues = xmalloc (sizeof (gfc_array_i4));
>>> + gfc_array_i4 *avalues = xmalloc (sizeof (gfc_full_array_i4));
>>>
>>>
>>> Since date_and_time requires the values array to always be rank 1,
>>> can't this be "xmalloc (sizeof (gfc_array_i4) +
>>> sizeof(dimension_data))" ?
>>
>> I think we can be fairly sure that this would be OK at the moment, since
>> (I think) there are no gaps in our descriptors at the moment. Anybody
>> invents an architecture where this is not the case, we introduce
>> a bug. This way is safer.
> According to the C standard (C11 6.7.2.1.18 and example 6.7.2.1.20),
> this is guaranteed to work.
OK, I didn't know that, and I see how that would save memory.
I'll make that change (with a comment) if this patch ends up being
committed.
Regards
Thomas
More information about the Fortran
mailing list