OSDN Git Service

gcc/:
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / warn / Wshadow-1.C
1 /* Copyright (C) 2001, 2002 Free Software Foundation, Inc.  */
2
3 /* { dg-do compile } */
4 /* { dg-options -Wshadow } */
5
6 /* Source: Neil Booth, 3 Nov 2001, and PR 16, 713.  -Wshadow was
7    giving a bunch of warnings we didn't want, and wasn't giving the
8    location of the shadowed variable.  */
9
10 struct status                   // { dg-bogus "shadowed declaration" }
11 {
12   int member;
13   void foo2 ();
14
15   inline static int foo3 (int member) // { dg-bogus "shadows" }
16   {
17     return member;
18   }
19 };
20
21 int decl1;                      // { dg-warning "shadowed declaration" }
22 int decl2;                      // { dg-warning "shadowed declaration" }
23 void foo (struct status &status,// { dg-bogus "shadows a global decl" }
24           double decl1)         // { dg-warning "shadows a global decl" }
25 {
26 }
27
28 void foo1 (int d)
29 {
30   double d;                     // { dg-error "shadows a parameter" }
31 }
32
33 void status::foo2 ()
34 {
35   int member;                   // { dg-warning "shadows a member" }
36   int decl2;                    // { dg-warning "shadows a global decl" }
37   int local;                    // { dg-warning "shadowed declaration" }
38   {
39     int local;                  // { dg-warning "shadows a previous local" }
40   }
41 }