// { dg-do compile } void large_array_char(int n) { new char[n] [1ULL << (sizeof(void *) * 4)] [1ULL << (sizeof(void *) * 4)]; // { dg-error "size of array" } } template void large_array_char_template(int n) { new char[n] [1ULL << (sizeof(void *) * 4)] [1ULL << (sizeof(void *) * 4)]; // { dg-error "size of array" } } template void large_array_template1(int n) { new T[n] // { dg-error "size of array is too large" } [(1ULL << (sizeof(void *) * 4)) / sizeof(T)] [1ULL << (sizeof(void *) * 4)]; } template void large_array_template2(int n) { new T[n] // { dg-error "size of array is too large" } [(1ULL << (sizeof(void *) * 4)) / sizeof(T)] [1ULL << (sizeof(void *) * 4)]; } template void large_array_template3(int n) { new T[n] // { dg-error "size of array is too large" } [(1ULL << (sizeof(void *) * 4)) / sizeof(T)] [1ULL << (sizeof(void *) * 4)]; } void call_large_array_template(int n) { large_array_template1(n); large_array_template2(n); large_array_template3(n); }