https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85164
--- Comment #12 from Vittorio Zecca <zeccav at gmail dot com> --- Here are two more test cases with undefined behaviour in poly-int.h Must be compiled with nonzero optimization cat gccerr73.c // must be compiled with nonzero optimization // ../../gcc/gcc/poly-int.h:753:21: runtime error: signed integer overflow: -5621332293356458048 * 8 cannot be represented in type 'long int' int a[4]; void f() { long int b = 7818038963515661296; a[0xA699ECD2C348A3A0] = a[b]; } [vitti cc]$cat gccerr74.c // Must be compiled with nonzero optimization // ../../gcc/gcc/poly-int.h:944:5: runtime error: signed integer overflow: 162675373468811328 - -9060696663385964544 cannot be represented in type 'long int' long b[1][9]; typedef long V __attribute__((vector_size (16), may_alias)); void foo () { V *c = (V *) ((char *) b + -9060696663385964544); *c = (V) { 1, 1 }; long __attribute__((may_alias)) *d = (long *) ((char *) b + 162675373468811328); *d = 1; }