(j3.2006) (SC22WG5.4363) [ukfortran] WG5 informal ballot re Interop. TR
N.M. Maclaren
nmm1
Wed Dec 1 15:39:33 EST 2010
On Nov 30 2010, Aleksandar Donev wrote:
>
>C) Regarding the macro CFI_DESC_T. Some more specification is needed to
>clarify what this macro does, or an explicit form for it provided as an
>example. Otherwise one cannot evaluate whether it will be useful in
>practice.
>Consider
>
>CFI_DESC_T(5) object; // Does object.base_addr work?
>
>Does CFI_DESC_T(5) expand to some opaque block-of-enough-bytes or is it
>an actual typed struct?
>If so, one can only use the object of type CFI_DESC_T(5) via pointers
>and casts, as done in the example in Note 5.2, but one could not in
>fact do something like object.base_addr.
10-232r2 was written in haste, but the example in that does permit such
use (and initialisation using designators). That is fairly clear from
the C standard.
However:
There is a trivial bug in the example, because I shouldn't have used
rank as a macro argument (it was a last-minute edit). Any name that is
NOT a type or field name will do - e.g. 'arg'.
Upon deeper study, C99's 'definitions' of compatibility and
completeness of types are far more confused than I had remembered, and some
more precise wording is needed to avoid ambiguity. I have written a paper
and will upload it, but it is PURELY wordsmithing.
Regards,
Nick Maclaren.
More information about the J3
mailing list