[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#416819: gcc-4.1: internal compiler error



tags 416819 + fixed-upstream
retitle 416819 [fixed in SVN] internal compiler error: in tsubst, at cp/pt.c:7226
thanks

* Martin Michlmayr <tbm@cyrius.com> [2007-03-30 19:59]:
> > Please too note that it is 100% a Debian/gcc bug, hence I've just
> > downloaded gcc version 4.1.2, and it works like a charm.
> OK, I can confirm that this doesn't show up with gcc 4.1 from current
> SVN, but shows up with SVN 20061114-r118779 (just before the current
> gcc-4.1 release).  So this bug is fixed in SVN.

For the record, the ICE is tsubst, at cp/pt.c:7226.   A reduced testcase
is below.

-- 
Martin Michlmayr
http://www.cyrius.com/
extern "C"
{
  typedef unsigned int size_t;
  typedef struct
  __sigset_t;
};
extern "C"
{
  typedef int int16_t __attribute__ ((__mode__ (__HI__)));
  typedef int int32_t __attribute__ ((__mode__ (__SI__)));
}
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
template < class FIRST, class SECOND > class Ident
{
};
template < class TYPE > class Less
{
};
template < class NUM, int DIM, class TOL > class Pixel
{
};
typedef Pixel < uint8_t, 1, int32_t > PixelY;
template < class ACCUM_NUM, class PIXEL_NUM, int DIM, class PIXEL =
  Pixel < PIXEL_NUM, DIM, ACCUM_NUM > >class ReferencePixel
{
};
typedef ReferencePixel < uint16_t, uint8_t, 1, PixelY > ReferencePixelY;
template < class REFERENCEPIXEL, class PIXELINDEX,
  class FRAMESIZE > class ReferenceFrame
{
};
typedef ReferenceFrame < ReferencePixelY, int16_t, int32_t > ReferenceFrameY;
template < class INDEX, class SIZE > class Region2D
{
public:class Extent
  {
  };
};
template < class TYPE, size_t SIZES > class Allocator
{
};
template < class KEY, class VALUE, class KEYFN, class PRED > class SkipList
{
private:struct Node
  {
  };
  enum
  {
    HEADERCHUNK = 10
  };
public:typedef Allocator < Node, HEADERCHUNK > Allocator;
  static Allocator sm_oNodeAllocator;
};
template < class TYPE, class PRED = Less < TYPE > >class Set
{
public:typedef SkipList < TYPE, TYPE, Ident < TYPE, TYPE >, PRED > Imp;
public:typedef typename Imp::Allocator Allocator;
};
template < class INDEX, class SIZE > class SetRegion2D:public Region2D < INDEX,
  SIZE >
{
private:typedef Region2D < INDEX, SIZE > BaseClass;
public:typedef typename BaseClass::Extent Extent;
  typedef Set < Extent > Extents;
public:typedef typename Extents::Allocator Allocator;
  class FloodFillControl;
};
template < class INDEX, class SIZE > class SetRegion2D < INDEX,
  SIZE >::FloodFillControl
{
private:typedef SetRegion2D < INDEX, SIZE > Region_t;
public:Region_t m_oToDo;
  typedef typename Region_t::Allocator Allocator;
};
template < class PIXEL_NUM, int DIM, class PIXEL_TOL, class PIXELINDEX,
  class FRAMESIZE, PIXELINDEX PGW, PIXELINDEX PGH, class SORTERBITMASK,
  class PIXEL = Pixel < PIXEL_NUM, DIM, PIXEL_TOL >, class REFERENCEPIXEL =
  ReferencePixel < PIXEL_TOL, PIXEL_NUM, DIM, PIXEL >, class REFERENCEFRAME =
  ReferenceFrame < REFERENCEPIXEL, PIXELINDEX,
  FRAMESIZE > >class MotionSearcher
{
  typedef SetRegion2D < PIXELINDEX, FRAMESIZE > Region_t;
  class MatchThrottleFloodFillControl:public Region_t::FloodFillControl
  {
  private:typedef typename Region_t::FloodFillControl BaseClass;
  public:  MatchThrottleFloodFillControl (typename BaseClass::
				     Allocator & a_rAllocator =
				     Region_t::Extents::Imp::
				     sm_oNodeAllocator);
  };
  MatchThrottleFloodFillControl m_oMatchThrottleFloodFillControl;
};
class MotionSearcherY:public MotionSearcher < uint8_t, 1, int32_t, int16_t,
  int32_t, 4, 2, uint16_t, PixelY, ReferencePixelY, ReferenceFrameY >
{
};

Reply to: