// { dg-do assemble } // Based on testcase by adriang@campbellsoft.com struct Null { template <typename T> operator T*() { return 0; } template <typename C, typename T> operator T C::*() { return 0; } #if WORK_AROUND typedef int pmf(); template <typename C> operator pmf C::* () { return 0; } #endif } NULL; int *pd = NULL; int (*pf)() = NULL; int Null::*pmd = NULL; int (Null::*pmf)() = NULL;