[Bug c++/46341] New: [C++0X] ICE: in cxx_eval_vec_init_1, at cp/semantics.c:6362

marc.glisse at normalesup dot org gcc-bugzilla@gcc.gnu.org
Sun Nov 7 08:22:00 GMT 2010


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

           Summary: [C++0X] ICE: in cxx_eval_vec_init_1, at
                    cp/semantics.c:6362
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: marc.glisse@normalesup.org


The following code causes an ICE, but compiles fine if I remove constexpr.

template<class _T2>
struct pair
{
        _T2 second;
        constexpr pair() : second() {}
};
template<typename _Tp, int _Nm>
struct array
{
        _Tp _M_instance[_Nm];
};
struct Periodic_3_offset_3 {
        Periodic_3_offset_3() {}
        typedef array< pair<Periodic_3_offset_3>, 2> Periodic_segment;
        Periodic_segment dual() {
                Periodic_segment ps;
        }
};


3.cc: In member function ‘Periodic_3_offset_3::Periodic_segment
Periodic_3_offset_3::dual()’:
3.cc:16:20:   in constexpr expansion of ‘ps.array<pair<Periodic_3_offset_3>,
2>::array()’
3.cc:16:20: internal compiler error: in cxx_eval_vec_init_1, at
cp/semantics.c:6362



More information about the Gcc-bugs mailing list