[Bug middle-end/77259] New: [6/7 Regression] ICE in emit_move_insn since r232167

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Aug 16 08:17:00 GMT 2016


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.


More information about the Gcc-bugs mailing list