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
8template <class T>
9struct Foo {
10  int i (int) {return 1;}
11};
12
13struct Baz
14{
15  int k (int) {return 2;}
16};
17
18template <class T>
19struct Bar : public Foo<T> , Baz {
20  using Foo<T>::i;
21  using Baz::k;
22
23  int i (float) {return 3;}
24  int k (float) {return 3;}
25
26  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
37int main()
38{
39  Bar<int> bar;
40
41  return bar.foo();
42}
43