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;
}

Reply via email to