comp.lang.ada
 help / color / mirror / Atom feed
From: Markus Schoepflin <nospam@no.spam>
Subject: Re: Enumeration representation clause surprise.
Date: Wed, 11 Jun 2008 14:56:34 +0200
Date: 2008-06-11T14:56:34+02:00	[thread overview]
Message-ID: <g2oi22$cae$1@nntp.ilk.net> (raw)
In-Reply-To: <0cbb6daf-01e9-40f5-855c-4f1d45cb0096@m73g2000hsh.googlegroups.com>

christoph.grein@eurocopter.com wrote:

> What you request for A1 seems impossible: Store value 2 = 2#01# in one
> bit.

This is exactly my point. I would have expected a compile time error for 
this impossible request.

Representation clauses are (amongst other) meant to specify specific binary 
layouts for interfacing with the external world. Or am I mistaken here?

> An illustrating example:
> 
> type My_Int is range 10_000 .. 10_001;
> 
> type My_Record is record
>   I: My_Int;
> end record;
> 
> for My_Record use record
>   I at 0 range 0 .. 0;
> end record;
> 
> This is allowed. My_Record holds only two values, so one bit is
> enough. The compiler uses a so-called biased representation with
> 10_000 as bias, which need not be stored.

Yes, I am aware that this feature exists, I am just unhappy that it is also 
allowed for enumerations.

Is there another Ada mechanism for specifying external interfaces like this 
one? One that does not have the same subtle maintenance trap?

> Hope this helps.

Thanks,
Markus



  reply	other threads:[~2008-06-11 12:56 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-11 11:38 Enumeration representation clause surprise Markus Schoepflin
2008-06-11 12:30 ` christoph.grein
2008-06-11 12:56   ` Markus Schoepflin [this message]
2008-06-11 13:08     ` christoph.grein
2008-06-11 13:28     ` Samuel Tardieu
2008-06-11 13:48       ` Markus Schoepflin
2008-06-11 13:56         ` Samuel Tardieu
2008-06-11 14:58       ` Adam Beneschan
2008-06-11 15:23         ` Markus Schoepflin
2008-06-12  2:37           ` Randy Brukardt
2008-06-12  2:37           ` Randy Brukardt
2008-06-11 15:56         ` Samuel Tardieu
2008-06-11 19:10           ` Adam Beneschan
2008-06-11 19:59             ` Niklas Holsti
2008-06-12  1:16               ` tmoran
2008-06-12  8:27                 ` christoph.grein
2008-06-12  8:45               ` Markus Schoepflin
2008-06-12 16:43                 ` Mike Silva
2008-06-12 18:41                   ` Markus Schöpflin
2008-06-12 20:10                     ` Mike Silva
2008-06-12 20:52                       ` Simon Wright
2008-06-12 23:36                         ` Mike Silva
2008-06-13  5:49                           ` Simon Wright
2008-06-13  7:21                       ` Keith Thompson
2008-06-13 13:31                         ` Mike Silva
2008-06-13 14:45                           ` Markus Schoepflin
2008-06-13 17:52                           ` Keith Thompson
2008-06-13  9:14                       ` Jean-Pierre Rosen
2008-06-12 19:05 ` richtmyer
2008-06-12 21:26   ` Samuel Tardieu
2008-06-12 22:42     ` Adam Beneschan
2008-06-13  7:11       ` Samuel Tardieu
2008-06-13  8:27       ` christoph.grein
2008-06-13 16:21         ` Adam Beneschan
2008-06-15 19:33           ` Robert A Duff
2008-06-16 14:50             ` Adam Beneschan
2008-06-16 19:18               ` Robert A Duff
2008-06-17  6:03               ` christoph.grein
2008-06-17  7:22                 ` christoph.grein
2008-06-13  8:24     ` Peter Hermann
2008-06-13 14:47       ` Samuel Tardieu
2008-06-14 11:48         ` John B. Matthews
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox