1// { dg-do run  }
2// Test that partial ordering ignores defaulted parms and 'this'.
3
4struct A {
5  template<class T> int f(T) { return 1; }
6  template<class T> int f(T*, int=0) { return 0; }
7  template<class T> int g(T*) { return 0; }
8  template<class T> static int g(T, int=0) { return 1; }
9  template<class T> int h(T*) { return 0; }
10  template<class T> static int h(T, int=0) { return 1; }
11  template<class T> static int j(T*, short y=0) { return 0; }
12  template<class T> static int j(T, int=0) { return 1; }
13};
14
15int main(void) {
16  A a;
17  int *p;
18  return (a.f(p) || a.g(p) || a.h(p) || a.j(p));
19}
20