public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/96743] New: ICE on flexible array in initializer list using lambdas
@ 2020-08-22  2:54 kevin at arilabs dot net
  2020-08-22  2:56 ` [Bug c++/96743] " kevin at arilabs dot net
  2021-07-27  5:28 ` pinskia at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: kevin at arilabs dot net @ 2020-08-22  2:54 UTC (permalink / raw)
  To: gcc-bugs

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug c++/96743] ICE on flexible array in initializer list using lambdas
  2020-08-22  2:54 [Bug c++/96743] New: ICE on flexible array in initializer list using lambdas kevin at arilabs dot net
@ 2020-08-22  2:56 ` kevin at arilabs dot net
  2021-07-27  5:28 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: kevin at arilabs dot net @ 2020-08-22  2:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96743

--- Comment #1 from Kevin Stallard <kevin at arilabs dot net> ---
A more complete output of the error:

/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
 BraceTest::BraceTest() : _entries { {"FirstAction", [this]( const char *data)
{this->Foo( data );} } }
                                                                               
                      ^

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug c++/96743] ICE on flexible array in initializer list using lambdas
  2020-08-22  2:54 [Bug c++/96743] New: ICE on flexible array in initializer list using lambdas kevin at arilabs dot net
  2020-08-22  2:56 ` [Bug c++/96743] " kevin at arilabs dot net
@ 2021-07-27  5:28 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-07-27  5:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96743

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |9.4
             Status|UNCONFIRMED                 |RESOLVED
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=63707
         Resolution|---                         |FIXED
           Keywords|ice-on-valid-code           |ice-on-invalid-code

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
GCC 9.4+ gives the correct error message:
<source>:23:1: error: initializer for flexible array member
'BraceTest::BraceTestArrayEntries BraceTest::_entries []'
   23 | BraceTest::BraceTest() : _entries { {"FirstAction", [this]( const char
*data) {this->Foo( data );} } }
      | ^~~~~~~~~

Fixed in 9.4 and above

I suspect the patch which fixes PR 63707 fixed this one.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-27  5:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-22  2:54 [Bug c++/96743] New: ICE on flexible array in initializer list using lambdas kevin at arilabs dot net
2020-08-22  2:56 ` [Bug c++/96743] " kevin at arilabs dot net
2021-07-27  5:28 ` pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).