https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96743
Bug ID: 96743 Summary: ICE on flexible array in initializer list using lambdas Product: gcc Version: 8.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kevin at arilabs dot net Target Milestone: --- I'm seeing: /home/parallels/Perforce/kevin.stallard_Ubuntu18_Helios-Nucleus-Development_9171/BraceTest/BraceTest.cpp: In constructor 'BraceTest::BraceTest()': /home/parallels/Perforce/kevin.stallard_Ubuntu18_Helios-Nucleus-Development_9171/BraceTest/BraceTest.cpp:23:102: internal compiler error: in build_vec_init_elt, at cp/tree.c:665 In the following code: #include <cstdlib> #include <iostream> #include <functional> class BraceTest { public: BraceTest(); struct BraceTestArrayEntries { const char *name; std::function<void(const char *data)> action; }; void RunAction( const char *actionName ); void Foo( const char *data ); int _some_data=0; BraceTestArrayEntries _entries[]; }; BraceTest::BraceTest() : _entries { {"FirstAction", [this]( const char *data) {this->Foo( data );} } } { } void BraceTest::RunAction( const char *actionName ) { } void BraceTest::Foo( const char *data ) { } int main(int argc, char *argv[]) { std::cout << "Welcome to the Momentics IDE" << std::endl; BraceTest bt; bt.RunAction("FirstAction"); return EXIT_SUCCESS; }