comp.lang.ada
 help / color / mirror / Atom feed
From: "Steven Deller" <deller@smsail.com>
Subject: RE: In case statment? (was Re: is exception when others => null; smart?)
Date: Tue, 29 Oct 2002 20:52:45 -0600
Date: 2002-10-29T20:52:45-06:00	[thread overview]
Message-ID: <mailman.1035946262.19628.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: <1b585154.0210291023.70af4929@posting.google.com>

Peter,
I'd bet it also depends on optimization.  At least for Rational, using
the "for" clauses is tantamount to saying "I know the values at this
location are ok, so just use them".  A 'valid could be used to test, but
otherwise, Rational opts to not test.  And the "when others" is, as
expected, a last ditch if the first two compares fail.

You might change your code to do something like:
  c : boolean
...
begin
   begin
     c := b ;
   exception
     when others => text_io.put_line "yet another possibility" ;
   end ;
   case b is
...

And you might test at different optimization levels.  At level 0,
Rational may very well include a constraint check on b that is, at
higher optimizations, optimized away per RM permissions.

Regards,
Steve
   

> -----Original Message-----

> As the following example illustrates, it really depends upon 
> the compiler too. A "bad" value is handled differently as
> shown:
> -----------------------------------------------------------
> with system;
> with text_io;
> procedure test is
>     
>      a : character := character'val(2#11111111#);   
>      for a'size use 8;
>      b : boolean;
>      for b'address use a'address;
>      for b'size use 8;
>      
> begin 
> 
>    case b is
>       when true =>
>         text_io.put_line ("b is true");     
>       when false =>
>         text_io.put_line ("b is false");
>       when others =>
>         text_io.put_line ("ObjectAda for Windows V7.1.105 "    & 
>                           "professional " edition gets here, " &
>                           "and so does Rational Apex Ada 95 
> v. 4.0.0b");    
>    end case;
>      
> exception
>    when others =>  
>       text_io.put_line ("Gnat 3.14P gets here ");  
> end test;
> 




  reply	other threads:[~2002-10-30  2:52 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-24 14:03 is exception when others => null; smart? Preben Randhol
2002-10-24 14:25 ` David C. Hoos, Sr.
2002-10-24 14:28   ` Preben Randhol
2002-10-24 14:38 ` Per Sandbergs
2002-10-25 15:04   ` Robert A Duff
2002-10-25 20:41     ` Dale Stanbrough
2002-10-26 23:04       ` Robert A Duff
2002-10-26  7:47     ` tmoran
2002-10-24 16:39 ` Mark Biggar
2002-10-24 20:06   ` Robert A Duff
2002-10-24 20:23     ` Wes Groleau
2002-10-25  1:16       ` Jeffrey Carter
2002-10-25 10:10         ` In case statment? (was Re: is exception when others => null; smart?) Preben Randhol
2002-10-25 14:59           ` Robert A Duff
2002-10-25 15:06             ` Preben Randhol
2002-10-29 18:23             ` Peter Richtmyer
2002-10-30  2:52               ` Steven Deller [this message]
2002-10-30  8:58               ` Anders Wirzenius
2002-10-30 19:57                 ` Peter Richtmyer
2002-10-31  7:02                   ` Anders Wirzenius
2002-10-30  9:36               ` Lutz Donnerhacke
2002-10-30 19:44                 ` Peter Richtmyer
2002-10-30 13:28               ` Marin David Condic
2002-10-30 20:34                 ` Robert Spooner
2002-10-31 12:40                   ` In case statment? (was Re: is exception when others => null;smart?) Marin David Condic
2002-10-25 17:13           ` In case statment? <...> when others John Woodruff
2002-10-27 21:03           ` In case statment? (was Re: is exception when others => null; smart?) Ze Administrator
2002-10-28 10:04             ` Preben Randhol
2002-10-28 20:05               ` Wes Groleau
2002-10-30 11:31                 ` Preben Randhol
2002-10-28 12:32             ` In case statment? (was Re: is exception when others => null;smart?) Adrian Hoe
2002-10-24 20:11   ` is exception when others => null; smart? Simon Wright
2002-10-24 21:22     ` Larry Kilgallen
2002-10-24 20:03 ` Robert A Duff
2002-10-25  1:49 ` SteveD
2002-10-25  3:48 ` Dennis Lee Bieber
2002-10-26 11:34   ` Preben Randhol
replies disabled

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