[Bug middle-end/61959] [4.8/4.9/4.10 Regression] ICE: in tree_to_uhwi, at tree.h:3657 when building Mozilla code

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jul 30 04:31:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61959

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-07-30
                 CC|                            |trippels at gcc dot gnu.org
          Component|c++                         |middle-end
   Target Milestone|---                         |4.8.4
            Summary|"internal compiler error:   |[4.8/4.9/4.10 Regression]
                   |in tree_to_uhwi, at         |ICE: in tree_to_uhwi, at
                   |tree.h:3657" when building  |tree.h:3657 when building
                   |Mozilla code                |Mozilla code
     Ever confirmed|0                           |1

--- Comment #5 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
A bit further reduced:

markus@x4 tmp % cat foo.ii
template <class Coord> struct BasePoint
{
  Coord x, y;
  constexpr BasePoint (Coord, Coord) : x (0), y (0) {}
};
template <class T> struct BaseCoord
{
  int value;
  constexpr BaseCoord (T) : value (1) {}
};
template <class units> struct IntCoordTyped : BaseCoord<int>, units
{
  typedef BaseCoord Super;
  constexpr IntCoordTyped (int) : Super (0) {}
};
template <class units>
struct IntPointTyped : BasePoint<IntCoordTyped<units> >, units
{
  typedef BasePoint<IntCoordTyped<units> > Super;
  constexpr IntPointTyped (int, int) : Super (0, 0) {}
};
struct A
{
};
IntPointTyped<A> a (0, 0);

markus@x4 tmp % g++ -O2 -std=c++11 -c foo.ii
foo.ii:25:26: internal compiler error: tree check: expected field_decl, have
pointer_plus_expr in output_constructor, at varasm.c:5194
 IntPointTyped<A> a (0, 0);
                          ^
0xdb4d94 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/gcc/tree.c:9169
0xe0a9e4 tree_check
        ../../gcc/gcc/tree.h:2728
0xe0a9e4 output_constructor
        ../../gcc/gcc/varasm.c:5194
0xe02817 output_constant
        ../../gcc/gcc/varasm.c:4735
0xe0b364 assemble_variable(tree_node*, int, int, int)
        ../../gcc/gcc/varasm.c:2175
0xe0caff varpool_node::assemble_decl()
        ../../gcc/gcc/varpool.c:544
0xe0d0c5 varpool_node::assemble_decl()
        ../../gcc/gcc/varpool.c:516
0xe0d0c5 varpool_node::output_variables()
        ../../gcc/gcc/varpool.c:684
0x844a7c compile()
        ../../gcc/gcc/cgraphunit.c:2262
0x845184 finalize_compilation_unit()
        ../../gcc/gcc/cgraphunit.c:2338
0x63330a cp_write_global_declarations()
        ../../gcc/gcc/cp/decl2.c:4684
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.



More information about the Gcc-bugs mailing list