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;
}

Reply via email to