comp.lang.ada
 help / color / mirror / Atom feed
From: "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com>
To: <martin@krischik.com>
Cc: comp.lang.ada@ada-france.org
Subject: Re: GNAT won't link on "warning"
Date: Mon, 29 Nov 2004 06:37:38 -0600
Date: 2004-11-29T06:37:38-06:00	[thread overview]
Message-ID: <mailman.150.1101731910.10401.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: 3664370.5jO7nDmgDP@linux1.krischik.com

The reason it won't compile is that you caused the constraint
error at compile time.  This is an error and not a warning.

When runtime constraint errors are detected at compile time,
the warning message says "will raise constraint_error."  The
message you received said "raises constraint_error," i.e.
present tense, instead of the future tense warning.

If you do the illegal conversion at run time (i.e. after
the "begin," it will compile and link, with a warning, but
fail at run time.

----- Original Message ----- 
From: "Martin Krischik" <martin@krischik.com>
Newsgroups: comp.lang.ada
To: <comp.lang.ada@ada-france.org>
Sent: November 29, 2004 3:45 AM
Subject: GNAT won't link on "warning"


> Hello,
> 
> For demonstation purpose I wanted to write a program which will raise an
> exception on converting some data:
> 
> with Ada.Text_IO;
> 
> procedure Convert_Checked
> is
>   type Short_Short_Integer is range -(2**7) .. +(2**7-1);
>   type Byte                is mod   2**8;
>  
>   package T_IO renames Ada.Text_IO;
>   package M_IO is new  Ada.Text_IO.Modular_IO (Byte);
> 
>   A : constant Short_Short_Integer := -1;
>   B : constant Byte                := Byte (A);
> begin
>   T_IO.Put ("B = ");
>   M_IO.Put (
>      Item  => B,
>      Width => 5,
>      Base  => 10);
> end Convert_Checked;
> 
> When I compile the demo I get:
> 
> convert_checked.adb:12:40: value not in range of type "Byte" defined at line
> 6
> convert_checked.adb:12:40: static expression raises "Constraint_Error"
> 
> It is my intention to use a value which is not in range of type "Byte" and
> "Constraint_Error" is precicly what I want to demonstate.
> 
> However, GNAT won't link the program. Actually GNAT won't even create an *.o
> file. Is this right? Is there an option to force creation?
> 
> With Regards
> 
> Martin
> 
> -- 
> mailto://krischik@users.sourceforge.net
> http://www.ada.krischik.com
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada-france.org
> http://www.ada-france.org/mailman/listinfo/comp.lang.ada
> 
>



  parent reply	other threads:[~2004-11-29 12:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-29  9:45 GNAT won't link on "warning" Martin Krischik
2004-11-28 19:37 ` Manuel G. R.
2004-11-29 12:37 ` David C. Hoos, Sr. [this message]
2004-11-29 16:52   ` Martin Krischik
2004-11-29 15:42 ` Sandro Magi
2004-11-30 19:38 ` Adam Beneschan
replies disabled

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