https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88128
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org --- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I think I have a patch; e.g. this now compiles: double *const (*d)[3]; double const *const (*e)[3] = d; int *(*f)[3]; const int *const (*g)[3] = f; int main() { double *array2D[2][3]; double * (*array2DPtr1)[3] = array2D; // Legal double * const (*array2DPtr2)[3] = array2DPtr1; // Legal double const * const (*array2DPtr3)[3] = array2DPtr2; // Illegal }