https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70466
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org Summary|ICE on invalid code in tree |[ICE on invalid code in |check: expected |tree check: expected |constructor, have parm_decl |constructor, have parm_decl |in convert_like_real, at |in convert_like_real, at |cp/call.c:6371 with |cp/call.c:6371 with |-std=c++11 |-std=c++11 --- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> --- A well-formed variant that was accepted by 4.5 (so this is a regression): template < class T, class S > struct A { explicit A (...) {} }; template < class T, class S > A < T, S > foo (T (S::*f) ()) { return A < T, S > (f); } struct B { void bar () {} }; int main () { foo (&B::bar); return 0; }