[Bug c++/54947] [4.7/4.8 Regression] [C++11] lambda cannot capture-by-copy inside braced-init-list

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 7 10:01:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54947

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-11-07
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |jason at gcc dot gnu.org
   Target Milestone|---                         |4.7.3
     Ever Confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-07 10:01:02 UTC ---
Started with http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176530
This clashes with the C99 designated initializers (as GNU extension for C++).
Guess perhaps the designated array initializers need to be parsed tentatively
for C++11, and if they aren't valid, we'd retry as lambdas.
It seems that C++ only supports the C99 style array designators ([constant] =
something) which aren't ambiguous with lambdas (unlike the old [constant]
something), are they?

Note that
constexpr int i = 0;
int a[] = { [i] = 0 };
ICEs currently with -std=gnu++11.



More information about the Gcc-bugs mailing list