/* PR c++/87996 - "size of array is negative" error when SIZE_MAX/2 < sizeof(array) <= SIZE_MAX { dg-do compile } { dg-options "-ftrack-macro-expansion=0" } */ #define SIZE_MAX __SIZE_MAX__ typedef __SIZE_TYPE__ size_t; template struct Aszmax_d2 { char a[N]; }; Aszmax_d2 aszmax_d2; template struct Aszmax_d2_p1 { char a[N]; // { dg-error "exceeds maximum object size" } }; Aszmax_d2_p1 aszmax_d2_p1; template struct Aszmax { char a[N]; // { dg-error "exceeds maximum object size" } }; Aszmax aszmax; template struct Aszmax_d2_szmax_d2 { char a[M][N]; // { dg-error "exceeds maximum object size" } }; Aszmax_d2_szmax_d2 aszmaxd2_szmaxd2;