[Bug c++/60951] New: [4.9 Regression][C++11] ICE with braced-init-list assignment and constexpr constructor

2014-04-24 Thread radiantstatue at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60951

Bug ID: 60951
   Summary: [4.9 Regression][C++11] ICE with braced-init-list
assignment and constexpr constructor
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: radiantstatue at gmail dot com

Test case:
struct Foo {
  constexpr Foo(int x = 0) : memb(x) {}
  int memb;
};

struct FooContainer {
  Foo foo[2];
};

void fubar() {
  int nonConst = 0;
  FooContainer fooContainer;
  fooContainer = { { 0, nonConst } };
}

$ g++ -std=c++11 -S testcase.cpp
testcase.cpp: In function ‘void fubar()’:
testcase.cpp:13:37: internal compiler error: in gimplify_init_ctor_preeval, at
gimplify.c:3320
   fooContainer = { { 0, nonConst } };
 ^

The error happens if mixed const/non-const expressions are used in the braced
init list.

[Bug c++/60951] [4.9 Regression][C++11] ICE with braced-init-list assignment and constexpr constructor

2014-04-24 Thread radiantstatue at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60951

radiantstatue at gmail dot com changed:

   What|Removed |Added

   Severity|major   |normal