comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: Legit Warnings or not
Date: Wed, 20 Jul 2011 19:37:48 -0700
Date: 2011-07-20T19:37:48-07:00	[thread overview]
Message-ID: <j086nn$aau$1@tornado.tornevall.net> (raw)
In-Reply-To: <531193e0-3305-4292-9ed8-0176226c1d00@x12g2000yql.googlegroups.com>

On 07/20/2011 03:30 PM, Anh Vo wrote:
> package Warnings_Legit is
>
>     type Warned_Person (Size : Positive := 10) is -- Warnings issued
> here
>        record
>           Name : String (1 .. Size);
>        end record;
>
>     type Acceptable_Person (Size : Positive) is
>        record
>           Name : String (1 .. Size);
>        end record;
>
> end Warnings_Legit;
>
> The code segment above triggers a warnings message 'creation of
> "Warned_Person" object may raise Storage_Error' at line 3 as marked.
> However, no warnings is issued at line 8. The difference between them
> is default discriminant. I am using GNAT-GPL-2011.
>
> Is this warnings legitimate? If yes, why line 8 is OK. Otherwise,
> should it be a bug?

Duff has given you a good answer as to why GNAT has that warning. What he didn't 
say is that some compilers not only won't give any warning, but a declaration of

X : Warned_Person;

will not raise Storage_Error on those compilers, either.

There are 2 ways to handle such unconstrained objects. The easy way, which GNAT 
uses, is to allocate enough space for the largest variant. The harder way only 
allocates enough space for the current value, and actually changes the space of 
the object if the size is changed through an assignment.

Some who have gone to the trouble to implement the 2nd way say they think it was 
the intention of the language designers.

-- 
Jeff Carter
"He didn't get that nose from playing ping-pong."
Never Give a Sucker an Even Break
110



  parent reply	other threads:[~2011-07-21  2:37 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-20 22:30 Legit Warnings or not Anh Vo
2011-07-20 23:16 ` Robert A Duff
2011-07-21 18:43   ` Anh Vo
2011-07-23  0:26   ` Randy Brukardt
2011-07-23 14:26     ` Robert A Duff
2011-07-21  2:37 ` Jeffrey Carter [this message]
2011-07-21  9:50   ` Brian Drummond
2011-07-21 14:39     ` Dmitry A. Kazakov
2011-07-23  0:36       ` Randy Brukardt
2011-07-23  9:03         ` Dmitry A. Kazakov
2011-07-23 11:07           ` Simon Wright
2011-07-23 11:21             ` Dmitry A. Kazakov
2011-07-26 21:25           ` Randy Brukardt
2011-07-27  7:45             ` Dmitry A. Kazakov
2011-07-28  0:37               ` Randy Brukardt
2011-07-28  9:22                 ` Dmitry A. Kazakov
2011-07-28 14:22                   ` Robert A Duff
2011-07-28 14:41                     ` Dmitry A. Kazakov
2011-07-28 15:10                       ` Robert A Duff
2011-07-28 17:05                         ` Dmitry A. Kazakov
2011-07-28 23:32                           ` Randy Brukardt
2011-07-28 23:48                   ` Randy Brukardt
2011-07-29  6:57                     ` Simon Wright
2011-07-29 18:56                       ` Jeffrey Carter
2011-07-30  0:13                       ` Randy Brukardt
2011-07-29  7:41                     ` Dmitry A. Kazakov
2011-07-30  0:17                       ` Randy Brukardt
2011-07-30  8:27                         ` Dmitry A. Kazakov
2011-08-01 22:12                           ` Randy Brukardt
2011-08-02 10:01                             ` Dmitry A. Kazakov
2011-08-02 21:30                               ` Randy Brukardt
2011-08-03  9:01                                 ` Dmitry A. Kazakov
2011-08-03 20:35                                   ` Randy Brukardt
2011-08-04  8:11                                     ` Dmitry A. Kazakov
2011-08-05 23:57                                       ` Randy Brukardt
2011-08-06  8:23                                         ` Dmitry A. Kazakov
2011-08-08 21:30                                           ` Randy Brukardt
2011-07-23 14:32         ` Robert A Duff
2011-07-26 21:32           ` Randy Brukardt
2011-07-21 15:28     ` Adam Beneschan
2011-07-21 15:41       ` Robert A Duff
2011-07-21 20:12         ` Adam Beneschan
2011-07-23  0:31           ` Randy Brukardt
2011-07-21 17:40     ` Jeffrey Carter
2011-07-21 21:30       ` Brian Drummond
2011-07-21 21:54         ` Adam Beneschan
2011-07-22 10:16           ` Brian Drummond
2011-07-22 14:54             ` Adam Beneschan
2011-07-23  0:46             ` Randy Brukardt
2011-07-23  0:42         ` Randy Brukardt
2011-07-23  9:20           ` Niklas Holsti
2011-08-04  5:56             ` David Thompson
2011-07-23  9:24           ` Dmitry A. Kazakov
2011-07-23 12:36           ` Brian Drummond
2011-07-21 15:13   ` Robert A Duff
2011-07-23  0:52     ` Randy Brukardt
2011-07-23 14:48       ` Robert A Duff
2011-07-21 14:17 ` anon
replies disabled

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