1 /* { dg-do compile } */
2 /* { dg-options -Wshadow=local } */
3
4 struct status
5 {
6 int member;
7 void foo2 ();
8
foo3status9 inline static int foo3 (int member)
10 {
11 return member;
12 }
13 };
14
15 int decl1; // { dg-bogus "shadowed declaration" }
16 int decl2; // { dg-bogus "shadowed declaration" }
foo(struct status & status,double decl1)17 void foo (struct status &status,
18 double decl1) // { dg-bogus "shadows a global" }
19 {
20 }
21
foo1(int d)22 void foo1 (int d)
23 {
24 double d; // { dg-error "shadows a parameter" }
25 }
26
foo2()27 void status::foo2 ()
28 {
29 int member; // { dg-bogus "shadows a member" }
30 int decl2; // { dg-bogus "shadows a global" }
31 int local; // { dg-message "note: shadowed declaration is here" }
32 {
33 int local; // { dg-warning "shadows a previous local" }
34 }
35 }
36