1 // { dg-do run }
2 
3 // Copyright (C) 2003 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 22 Jul 2003 <nathan@codesourcery.com>
5 
6 // PR 9447. Using decls in template classes.
7 
8 template <class T>
9 struct Foo {
iFoo10   int i (int) {return 1;}
11 };
12 
13 struct Baz
14 {
kBaz15   int k (int) {return 2;}
16 };
17 
18 template <class T>
19 struct Bar : public Foo<T> , Baz {
20   using Foo<T>::i;
21   using Baz::k;
22 
iBar23   int i (float) {return 3;}
kBar24   int k (float) {return 3;}
25 
fooBar26   int foo()
27   {
28     if (i (1) != 1)
29       return 1;
30     if (k (1) != 2)
31       return 2;
32 
33     return 0;
34   }
35 };
36 
main()37 int main()
38 {
39   Bar<int> bar;
40 
41   return bar.foo();
42 }
43