| /* Copyright (C) 2001, 2002 Free Software Foundation, Inc. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options -Wshadow } */ |
| |
| /* Source: Neil Booth, 3 Nov 2001, and PR 16, 713. -Wshadow was |
| giving a bunch of warnings we didn't want, and wasn't giving the |
| location of the shadowed variable. */ |
| |
| struct status // { dg-bogus "shadowed declaration" } |
| { |
| int member; |
| void foo2 (); |
| |
| inline static int foo3 (int member) // { dg-bogus "shadows" } |
| { |
| return member; |
| } |
| }; |
| |
| int decl1; // { dg-message "shadowed declaration" } |
| int decl2; // { dg-message "shadowed declaration" } |
| void foo (struct status &status,// { dg-bogus "shadows a global decl" } |
| double decl1) // { dg-warning "shadows a global decl" } |
| { |
| } |
| |
| void foo1 (int d) |
| { |
| double d; // { dg-error "shadows a parameter" } |
| } |
| |
| void status::foo2 () |
| { |
| int member; // { dg-warning "shadows a member" } |
| int decl2; // { dg-warning "shadows a global decl" } |
| int local; // { dg-message "shadowed declaration" } |
| { |
| int local; // { dg-warning "shadows a previous local" } |
| } |
| } |