https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80864
Bug ID: 80864 Summary: Brace-initialization of a constexpr variable of an array in a POD triggers ICE from templates Product: gcc Version: 6.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: oss at florianjw dot de Target Milestone: --- The following code triggers an ICE in GCC 6.3.0 and 6.3.1 under independent systems: `````````````````````````````````````````````````````````````````````````` struct array { char c[1]; }; template <typename T> void gun() { constexpr auto c = array{{}}; } void fun() { gun<int>(); } `````````````````````````````````````````````````````````````````````````` `g++ test.cpp`: `````````````````````````````````````````````````````````````````````````` test.cpp: In instantiation of ‘void gun() [with T = int]’: test.cpp:13:11: required from here test.cpp:8:29: internal compiler error: in reshape_init_r, at cp/decl.c:5898 constexpr auto c = array{{}}; ^ Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions. `````````````````````````````````````````````````````````````````````````` I didn't find a bug-report with this exact problem, but this one could possibly be related: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607