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: unassig...@gcc.gnu.org
        ReportedBy: marc.gli...@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

Reply via email to