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