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

            Bug ID: 60230
           Summary: internal compiler error on lambdas capturing
                    multidimensional arrays with dynamic boundary
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: moezzia at gmail dot com

Created attachment 32145
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32145&action=edit
preprocessed file foo.ii

With the following code snippet

<snip>
    void foo(const unsigned N)
    {
        int p[N][N];
        auto go = [&p] (void) { p[0][0] = -1; };
        go();
    }
</snip>

I get an internal compiler error.

#> /usr/local/bin/g++ --std=c++11 foo.cpp

foo.cpp: In lambda function:
foo.cpp:5:35: internal compiler error: in expand_expr_real_1, at expr.c:9459
     auto go = [&p] (void) { p[0][0] = -1; };
                                   ^



#> /usr/local/bin/g++ -v

Using built-in specs.
COLLECT_GCC=/usr/local/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --disable-multilib --enable-languages=c,c++
Thread model: posix
gcc version 4.9.0 20140216 (experimental) (GCC)

Reply via email to