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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: What shoudl GNAT do wrt variant record and representation clauses? Date: Mon, 02 Feb 2015 09:04:27 +0000 Organization: A noiseless patient Spider Message-ID: References: <49494faf-1e2d-43a1-a2b0-fd25af3850cc@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="8cd79d7ffa75567f93d907bdfb272368"; logging-data="6932"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+2XlyRSmB/GLe8ImnUsaDG3aZ5W7lyh34=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (darwin) Cancel-Lock: sha1:ZvyjHUhHS/TK4Q/ZmVeil9cMFgc= sha1:iyU7vAKgh/bCxffFfI2iET2c2tI= Xref: news.eternal-september.org comp.lang.ada:24846 Date: 2015-02-02T09:04:27+00:00 List-Id: Lucretia writes: > for Pixel_Orders use > record > Indexed_Order at 0 range 0 .. 2; > Packed_Order at 0 range 0 .. 3; > Array_Order at 0 range 0 .. 3; > end record; Pretty sure you're saying that you don't care what the top bit of the 4-bit field is if it contains an Indexed_Order. So sometimes it'll be wrong. I must say, since you're setting up constants, I'd have expected the compiler to work out the required 32-bit Pixel_Format_Names value at compile time from a zeroed base! I wondered whether -gnatw.h would do the trick, but (4.9.1) it just says gcc -c -gnatw.h pixel_formats.ads pixel_formats.ads:124:10: warning: 32768-bit gap before component "Indexed_Order" pixel_formats.ads:125:10: warning: 32768-bit gap before component "Packed_Order" pixel_formats.ads:126:10: warning: 32768-bit gap before component "Array_Order" :-) (I changed the name of the package to save trouble downloading other stuff)