comp.lang.ada
 help / color / mirror / Atom feed
From: "Greg Bek" <gab@rational.com>
Subject: Re: Representation clause for enumeratives
Date: Thu, 8 Feb 2001 10:52:56 -0800
Date: 2001-02-08T10:52:56-08:00	[thread overview]
Message-ID: <95uptf$e6n$1@usenet.rational.com> (raw)
In-Reply-To: 95tqbh$ag7$1@nnrp1.deja.com

Sandro,
What I think is happening is that AdaMulti is using a 32 bit signed type
to represent enumerated values.  The 16#8000_0000# value is outside
this range.

The supplied example compiles with Apex.

But if for instance you changed it to 16#8_0000_0000# (thinking you
had more than 32 bits) you would get the error:
10:28:19 >>> Line 8: for Typ_Enum use (16#00000002#, 16#00000004#,
16#8_0000_0000#);
10:28:19 *** The internal codes exceed the values representable with the
largest target integer type
This is because Apex uses a 32 bit unsigned type to store enumerated values.

Basically you have hit a compiler limit.  I'm not sure if you can use a
negative number for
the enumerated values with your compiler, if you can then reordering your
enumerated
type declaration to:

 type Typ_Enum is (C, A, B);

    for Typ_Enum use
       (-16#80000000#,16#00000002#, 16#00000004# )
     --^^^^ note the minus sign

Greg
-------------------------------------------
Greg Bek  mailto:gab@rational.com
Product Manager
Rational Software, Cupertino CA 95014
Ph: +1 408 863 4394   Fax: + 1 408 863 4180
-------------------------------------------
Sandro Binetti wrote in message <95tqbh$ag7$1@nnrp1.deja.com>...
> Hi everybody,
>
>Suppose you have an enumerative type like the following:
>
>type TYP_ENUM is (A,B,C);
>
>for TYP_ENUM use(
>        16#00000002#,
>        16#00000004#,
>        16#80000000#  -- <<<<< NOTICE THIS VALUE !!!
>
>);
>
>My GHS AdaMulti compiler reports this error:
>
> LRM:4.9(35), The static expression which is not part of a larger
>static expression is outside the base range of its expected type.
>
>My Gnat compiler, on the other side, does not say anything.
>
>What's wrong with this such a 16#80000000#  value?
>--
>Ciao, Sandro
>
>
>Sent via Deja.com
>http://www.deja.com/





  parent reply	other threads:[~2001-02-08 18:52 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-08  9:53 Representation clause for enumeratives Sandro Binetti
2001-02-08 10:12 ` Tarjei T. Jensen
     [not found]   ` <95u470$ho1$1@nnrp1.deja.com>
     [not found]     ` <95ua6q$mp4$1@nnrp1.deja.com>
2001-02-08 15:41       ` M. Kotiaho
2001-02-08 16:27         ` Steve O'Neill
2001-02-09  7:26           ` Sandro Binetti
2001-02-09  9:29           ` Martin Dowie
2001-02-08 15:55     ` Marin David Condic
2001-02-08 16:22 ` Rod Chapman
2001-02-10  6:34   ` Robert Dewar
2001-02-12 11:32     ` Rod Chapman
2001-02-08 18:52 ` Greg Bek [this message]
     [not found] ` <Ndyg6.1048$y03.96769@news.flash.net>
2001-02-09  5:02   ` Ken Garlington
2001-02-10  6:29     ` Robert Dewar
2001-02-10 16:37       ` Ken Garlington
2001-02-10 17:29         ` Robert Dewar
2001-02-11  1:09           ` Ken Garlington
2001-02-11  5:27             ` Robert Dewar
2001-02-11 12:53               ` Laurent Guerby
2001-02-12  0:24                 ` Robert Dewar
2001-02-12 20:10                   ` Laurent Guerby
2001-02-11 14:50               ` Ken Garlington
2001-02-10 17:31         ` Robert Dewar
2001-02-11  1:09           ` Ken Garlington
2001-02-11  5:28             ` Robert Dewar
2001-02-11 14:50               ` Ken Garlington
2001-02-12  0:30                 ` Robert Dewar
2001-02-12  2:34                   ` Ken Garlington
2001-02-10  6:19   ` Robert Dewar
2001-02-10 11:42     ` David C. Hoos, Sr.
2001-02-10 16:37     ` Ken Garlington
     [not found] ` <3A829EB8.A098925E@baesystems.com>
     [not found]   ` <95uae3$n5j$1@nnrp1.deja.com>
2001-02-12  9:12     ` Stuart Palin
replies disabled

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