From: Ted Dennison <dennison@telepath.com>
Subject: Re: LLQ: -1 a valid boolean?
Date: 2000/05/23
Date: 2000-05-23T00:00:00+00:00 [thread overview]
Message-ID: <8ge39b$g45$1@nnrp1.deja.com> (raw)
In-Reply-To: 8g8o3b$9l0$1@nnrp1.deja.com
In article <8g8o3b$9l0$1@nnrp1.deja.com>,
Robert Dewar <robert_dewar@my-deja.com> wrote:
> In article <39253CD0.C8DC893D@telepath.com>,
> Ted Dennison <dennison@telepath.com> wrote:
> > You'd think that a value that is legal in situ ought to be
> > legal to assign as well. Then again, if Ada_Boolean'Size = 8
> > or 32 or something, then I can see where one might argue that
> > a value of -1 (all bits set) is out of range of the possible
> > Boolean values, and thus should raise
> > Constraint_Error.
> >
> > So what's right?
>
> Not only is the compiler's behavior conforming, it is actually
> what one would expect, given that you most certainly expect
> that boolean objects have a size of 8 (the choice of a size
> of 1 for boolean objects is typically impractical on most
> architectures due to the task indepedence requirement).
>
> Your code is just wrong here, and you are going to have to
> deal with these booleans in a completely different manner.
That's what I was afraid of.
> If your compiler implements Interfaces.Fortran, then everything
> should be fine, since the type Logical should work properly.
Except that sometimes the value comes from a Fortran program, and
sometimes it comes from a C program.
I just ended up doing the following, which looks damn silly (so I had
to comment it copiously), but works:
if To_Bool_Ptr(Addr).all then
return True;
else
return False;
end if;
--
T.E.D.
http://www.telepath.com/~dennison/Ted/TED.html
Sent via Deja.com http://www.deja.com/
Before you buy.
next prev parent reply other threads:[~2000-05-23 0:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-05-19 0:00 LLQ: -1 a valid boolean? Ted Dennison
2000-05-19 0:00 ` Jeff Carter
2000-05-20 0:00 ` Ted Dennison
2000-05-21 0:00 ` Robert Dewar
2000-05-23 0:00 ` Ted Dennison [this message]
2000-05-23 0:00 ` David C. Hoos, Sr.
2000-05-24 0:00 ` Robert Dewar
2000-05-24 0:00 ` David C. Hoos, Sr.
2000-05-24 0:00 ` Robert Dewar
2000-05-24 0:00 ` Ted Dennison
2000-05-24 0:00 ` Robert Dewar
2000-05-23 0:00 ` Robert Dewar
2000-05-23 0:00 ` Ted Dennison
2000-05-23 0:00 ` Robert Dewar
2000-05-23 0:00 ` Ted Dennison
2000-05-24 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox