http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57107



Markus Trippelsdorf <markus at trippelsdorf dot de> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |markus at trippelsdorf dot

                   |                            |de



--- Comment #2 from Markus Trippelsdorf <markus at trippelsdorf dot de> 
2013-04-29 09:00:33 UTC ---

Reduced:



class A {

public:

  template <typename _Tp1> struct rebind {

    typedef A other;

  };

  ~A() {}

};

template <typename _Alloc> struct __alloc_traits {

  template <typename _Tp> struct rebind {

    typedef typename _Alloc::template rebind<_Tp>::other other;

  };

};

template <typename _Tp, typename _Alloc> struct B {

  typedef typename __alloc_traits<_Alloc>::template rebind<_Tp>::other

  _Tp_alloc_type;

  struct C : _Tp_alloc_type {

    C(_Tp_alloc_type) : _Tp_alloc_type() {}

  };

  typedef _Alloc allocator_type;

  B(int, const allocator_type &p2) : _M_impl(p2) {}

  C _M_impl;

};

template <typename _Tp, typename _Alloc = A> class D : B<_Tp, _Alloc> {

  typedef B<_Tp, _Alloc> _Base;

public:

  typedef _Tp value_type;

  typedef _Alloc allocator_type;

  D(const value_type &p1, const allocator_type &p2 = allocator_type())

      : _Base(0, p2) {

    _M_fill_initialize(p1);

  }

  void _M_fill_initialize(const value_type &);

};

void _setjmp();

void writeQImageToPng() {

  _setjmp();

  D<unsigned*>(0);

}

Reply via email to