(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