111
|
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-message "shadowed declaration" }
|
|
22 int decl2; // { dg-message "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-message "shadowed declaration" }
|
|
38 {
|
|
39 int local; // { dg-warning "shadows a previous local" }
|
|
40 }
|
|
41 }
|