comp.lang.ada
 help / color / mirror / Atom feed
From: Mark Johnson <Mark_H_Johnson@Raytheon.com>
Subject: Re: Elaboration in GNAT
Date: Wed, 28 Nov 2001 12:13:04 -0600
Date: 2001-11-28T12:13:04-06:00	[thread overview]
Message-ID: <3C052930.4FE65C5D@Raytheon.com> (raw)
In-Reply-To: 1006952193.650930@edh3

Frode Tenneboe wrote:

> Using -gnatwa I get some elaboration issues with some legacy code in GNAT.
> One of these are:
>
> foo.adb:69:04: warning: instantiation of "Client" may raise Program_Error
> foo.adb:69:04: warning: missing pragma Elaborate_All for "bar"
>
> The problem is that this crops up everywhere which I asume is because
> the elboration of package bar is not very healthy.
>
> The package in question uses Ada.Calendar, however there must be some
> code in one (or more) of the dependencies in the body of bar which
> causes this. A manual inspection of this code is not done over night.
>
> Is there a way of getting the information above a bit more verbose?

Not that I am aware of.

I had some lengthy discussions with Robert Dewar about this particular issue.
The warning basically says that elaboration code in the current package
depends upon another package. To be safe - elaborate the other package (and
all packages it depends upon) prior to elaboration of the current package. I
agree with the reasoning behind this so I have this warning turned on all
compiles we do as well.

Since I also demand warning free software in our facility, my "solution" is to
add pragma Elaborate_All(bar); in every place the warning is issued. That way
if we have any mutual dependencies [we haven't] they become compiler errors.
This is a quick solution and doesn't require any extensive analysis to put
into place.

Robert of course may give you slightly different suggestions. One that I tend
to ignore is to not use "gnatwa", but to specify exactly which warnings you
want and don't want. I have found over the last several months that added
warnings from gnatwa are beneficial and I'm sticking with it.

  --Mark




  reply	other threads:[~2001-11-28 18:13 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-28 12:34 Elaboration in GNAT Frode Tenneboe
2001-11-28 18:13 ` Mark Johnson [this message]
2001-11-29  3:44   ` Robert Dewar
2001-11-29 13:30     ` Stephen Leake
2001-11-28 19:25 ` Robert Dewar
2002-01-04 13:21   ` Frode Tenneboe
2002-01-04 15:07     ` Matthew Heaney
2002-01-05  0:43       ` Robert Dewar
2002-01-05  0:50       ` Robert Dewar
2002-01-07 17:22         ` Mark Johnson
2002-01-08  0:00           ` Robert Dewar
2002-01-10 21:54         ` Robert A Duff
2002-01-11  4:49           ` Robert Dewar
2002-01-11 13:35             ` Robert A Duff
2002-01-11 19:18               ` Robert Dewar
2002-01-16 11:48           ` Arnaud Charlet
2002-01-05  0:40     ` Robert Dewar
2002-01-07 13:28       ` Frode Tenneboe
2002-01-11 19:25         ` Robert Dewar
2001-11-29 13:13 ` Stephen Leake
2001-11-29 13:17 ` Stephen Leake
2001-11-30 12:44   ` Simon Wright
replies disabled

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