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

Yves Vandriessche <yves.vandriessche at intel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |yves.vandriessche at intel dot 
com

--- Comment #8 from Yves Vandriessche <yves.vandriessche at intel dot com> ---
reconfirming for g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

compiling with -std-gnu++11 -fcilkplus

I did find a workaround: I do not get the error if I avoid using the array
notation extension on a member. Using a local variable that takes on the
pointer value of the member compiles perfectly.

> struct Test {
>   int nrows;
>   int * rows;
>   Test(int _nrows, int * in_rows): nrows(_nrows) {
>     rows = new int[nrows + 1];
> 
>     // internal compiler error: in find_rank, at 
> c-family/array-notation-common.c:244
>     rows[0:nrows+1] = 0;
> 
>     // // workaround
>     // int * _rows = rows;
>     // _rows[0:nrows+1] = 0;
>   }
> };
> 
> int main() {
>   Test t{1024*1024, nullptr};
> }

Reply via email to