diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/other/large-size-array.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/other/large-size-array.C | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/other/large-size-array.C b/gcc-4.9/gcc/testsuite/g++.dg/other/large-size-array.C new file mode 100644 index 000000000..9614fb125 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/other/large-size-array.C @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +#include <limits.h> + +#ifdef _WIN64 +#define DIM ULLONG_MAX>>1 +#else +#ifdef __LP64__ +#define DIM UINT_MAX>>1 +#else +#define DIM USHRT_MAX>>1 +#endif +#endif + +int +sub (int *a) +{ + return a[0]; +} + +int +main (void) +{ + int a[DIM][DIM]; /* { dg-error "size of array 'a' is too large" } */ + return sub (&a[0][0]); /* { dg-error "declared" } */ +} + + |