From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,e08ffaff681705c X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: access aliased obstacle Date: 1996/07/09 Message-ID: #1/1 X-Deja-AN: 167993545 references: <4rsmn6$hvc@news1.delphi.com> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-07-09T00:00:00+00:00 List-Id: tmoran says " I think of a C union as essentially a variant record with the discriminant outside the record (in some other variable entirely). C probably does think of this as a union, although it fits an Ada discriminated record perfectly. What is this 'Unchecked_Union'? I don't see it in my LRM." That is precisely the view that Unchecked_Union takes, it allows the use of a variant record with no variant field stored, so it can exactly map to a C union. This pragma is implemented with consistent semantics in both the Intermetrics compilers and in GNAT, and is used in the Win32 bindings. For details, see the file features included with the GNAT documentation, which has a full description of this pragma. You will definitely not find it in the RM for the simple reason that it is not there. Tecnhnically this is an imlementation defined attribute, but in practice it is one on which there is agreement that it will be implemented consistently across compilers.