1 // { dg-do assemble  }
2 // { dg-options "-Wredundant-decls" }
3 // 980413 bkoz
4 // from g++/15307, tests for -Wredundant-decls
5 // for friend functions and functions
6 
7 
8 extern int foo(const char *);
9 
10 class A
11 {
12   friend int foo(const char *);
13   int a;
14 };
15 
16 class B
17 {
18   friend int foo(const char *);
foo2()19   int foo2() {return b;}
20   int b;
21 };
22 
23 class C
24 {
25   friend int foo(const char *);
26   friend int foo(const char *); // { dg-warning "" }
foo2()27   int foo2() {return b;}
28   int b;
29 };
30 
31 class D
32 {
33 public:
foo2()34   int foo2() {return b;}  // { dg-message "previous" }
foo2()35   int foo2() {return b;}  // { dg-error "overloaded" }
36   int b;
37 };
38 
39 class E
40 {
41 public:
42   int foo2(); // { dg-message "previous" }
43   int foo2(); // { dg-error "overloaded" }
44   int b;
45 };
46 
47 extern int foo3(const char *);  // { dg-message "" }
48 extern int foo3(const char *);  // { dg-warning "" }
49