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