// { dg-do assemble  }
// Origin: Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
double f(double);
typedef double (*M)(double);
class A {
public:
	template <const M n> void g(); 
};
class B: public A {
public:
	void g() { A::g<f>(); }
};