1// { dg-do assemble  }
2
3// Based on testcase by adriang@campbellsoft.com
4
5struct Null {
6  template <typename T> operator T*() { return 0; }
7  template <typename C, typename T> operator T C::*() { return 0; }
8#if WORK_AROUND
9  typedef int pmf();
10  template <typename C> operator pmf C::* () { return 0; }
11#endif
12} NULL;
13
14int *pd = NULL;
15int (*pf)() = NULL;
16int Null::*pmd = NULL;
17int (Null::*pmf)() = NULL;
18