comp.lang.ada
 help / color / mirror / Atom feed
From: Julian Leyh <julian@vgai.de>
Subject: Warnings about hiding
Date: Fri, 8 Oct 2010 05:47:05 -0700 (PDT)
Date: 2010-10-08T05:47:05-07:00	[thread overview]
Message-ID: <44e7dff1-04f5-46ad-8521-e4fe030c9c29@26g2000yqv.googlegroups.com> (raw)

Hi,

"-gnatwh" activates warnings on hiding declarations. But sometimes,
hiding is necessary.

For example, consider this (Controlled type with it's own comparison
operator and finalize procedure, you can reproduce the errors using
these ads files):

$ cat foo.ads
with Ada.Finalization;
package foo is
   type Foobar is new Ada.Finalization.Controlled with null record;
   function "=" (L,R : in Foobar) return Boolean;
private
   procedure Finalize (Object : in out Foobar);
end foo;
$ gnat -gnatwh -gnatc foo.ads
gcc -c -gnatwh -gnatc foo.ads
foo.ads:4:13: warning: declaration of "=" hides one in package
Standard
foo.ads:6:14: warning: declaration of "Finalize" hides one at line 3
$

The only way i see to solve this, is using pragma Warnings (Off); like
this:

$ cat bar.ads
with Ada.Finalization;
package bar is
   type Barfoo is new Ada.Finalization.Controlled with null record;
pragma Warnings(Off);
   function "=" (L,R : in Barfoo) return Boolean;
pragma Warnings(On);
private
   procedure Finalize (Object : in out Barfoo);
end bar;
$ gnatmake -gnatc -gnatwh bar.ads
gcc -c -gnatwh -gnatc bar.ads
bar.ads:8:14: warning: declaration of "Finalize" hides one at line 3
$

But that would either remove all warnings between both pragmas, or I
would have to put them around every occurence of the hiding. I don't
like turning all warnings off at once and I don't like adding two
lines of source code just to prevent the warning. Still, I would like
to remove them (without removing -gnatwh).

Is there a proper way to do this?

Greetings,
Julian



             reply	other threads:[~2010-10-08 12:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-08 12:47 Julian Leyh [this message]
2010-10-08 19:46 ` Warnings about hiding Adam Beneschan
2010-10-08 20:24   ` Simon Wright
2010-10-09  1:31 ` Vinzent Hoefler
2010-10-09  6:51   ` Randy Brukardt
2010-10-09  8:08     ` Dmitry A. Kazakov
2010-10-26  1:34       ` Yannick Duchêne (Hibou57)
2010-10-26  1:28     ` Yannick Duchêne (Hibou57)
2010-10-09 11:18 ` anon
2010-10-09 19:11   ` Simon Wright
2010-10-09 20:11     ` anon
2010-10-26  1:16 ` Yannick Duchêne (Hibou57)
2010-10-26  9:32   ` J-P. Rosen
replies disabled

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