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



             Bug #: 55226

           Summary: [C++11] ICE regression in regard to anonymous unions

                    and constexpr

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: daniel.krueg...@googlemail.com





The following code gives me now a regressive ICE when switching from my

previous gcc 4.8 (last successfully tested: 4.8.0 20121014 (experimental)) to

gcc 4.8.0 20121104 (experimental) using the compiler flags



-Wall -pedantic -std=c++11



//----------------------

template<class T>

struct optional_data

{

  union {

    unsigned char for_value_init_;

    T value_;

  };



  constexpr optional_data() : for_value_init_() {}

};



struct ncnm

{

  ncnm(ncnm&&) = delete;

  ncnm(const ncnm&) = delete;

};



int main()

{

  optional_data<ncnm> o; // #20

}

//----------------------



"In function 'int main()':|

20|internal compiler error: in gimplify_init_ctor_eval, at gimplify.c:3787|

"



A tentative guess is that this could have been a side-effect of the fix applied

to bug 54922.

Reply via email to