https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77259
Bug ID: 77259 Summary: [6/7 Regression] ICE in emit_move_insn since r232167 Product: gcc Version: 6.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- template <typename, typename = int> class A; template <typename, typename> struct A { A (A &&); }; template <typename S, typename T, typename U> A<S> operator+(S *, const A<T, U> &); template <typename S, typename T, typename U> void operator+(const A<T, U> &, S *); struct B { template <typename V> B (V); }; template <typename V> V foo (B) {} class C; template <typename> struct D { C *operator->() { return d; } C *d; }; struct C { virtual A<int> bar (); }; struct E { ~E (); virtual A<char> bar (const B &) const; }; template <typename> struct F : E { }; template <typename W> class F<D<W> > : E { typedef D<W> f; A<char> bar (const B &) const try { f a = baz (); } catch (int) { } f baz () const { D<C> b = foo<D<C> >(0); "" + b->bar () + ""; } }; struct G : F<D<int> > { G (int); }; void test () { G (0); } ICEs starting with r232167 in emit_move_insn.