From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 13 Dec 91 16:00:55 GMT From: elroy.jpl.nasa.gov!sdd.hp.com!caen!uvaarpa!software.org!blakemor@ames.arc .nasa.gov (Alex Blakemore) Subject: Re: 'SIZE attribute of a type Message-ID: <1991Dec13.160055.23912@software.org> List-Id: In article <1991Dec13.152340.20444@software.org> smithd@software.org (Doug Smit h) writes: > If I have understood this thread, the following > statement should minimize the storage for variables of type b: > for b'Size use b'Size; Interesting idea. > So I used a Verdix compiler (old) to see if it would even compile the > code--it does! But for a Boolean type it still uses 8: > How many compilers can compile this and then how many actually > use one bit for this type? Very interesting...but cryptic. Hi Doug, I ran this through our VMS Ada compiler and got the following. I think you could read the LRM more than one way here. Is there an AI about this ? LRM excerpt is at the end. --------------- Pruned listing from VAX Ada V2.2-38 -------------- 1 with Text_IO; 2 3 procedure Test_B is 4 5 type B is new Boolean; 6 for B'Size use B'Size; ................1...........2 %ADAC-I, (2) The representation of type B at line 5 is forced here %ADAC-E, (1) The representation of type B at line 5 has already been forced at line 6 [LRM 13.1(6)] 7 8 B_variable : B; 9 begin 10 Text_IO.Put_Line ("Type B has size " & 11 Integer'Image (B'Size)); 12 Text_IO.Put_Line ("Variables of type B have size" & 13 Integer'Image (B_variable'Size)); 14 end Test_B; --------------- end VAX Ada V2.2-38 listing -------------- For those unfamiliar with VMS, the messages preceeded with %ADAC-I are informational messages which may help shed light on the subject but are not errors or even warnings. Errors are preceeded with %ADAC-E. LRM 13.1(6) ... certain occurrences of its name imply that the representation of the type must already have been determined. ... A forcing occurrence is any occurrence other than in a type or subtype declaration, or a representation clause for the type itself. In any case, an occurrence within an expression is always forcing. -- --------------------------------------------------------------------- Alex Blakemore blakemore@software.org (703) 742-7125 Software Productivity Consortium 2214 Rock Hill Rd, Herndon VA 22070