/* PR tree-optimization/89720 - Spurious -Warray-bounds warning on a range with max < min { dg-do compile } { dg-options "-O2 -Wall" } */ void f (char*, int); #if __SIZEOF_POINTER__ == 8 void g (__INT64_TYPE__ i) { char a[65536] = ""; char *p = a + (i & (__INT64_TYPE__)0xffffffff3fffffffLL); f (p, *(p - 6)); /* { dg-bogus "\\\[-Warray-bounds" } */ } #elif __SIZEOF_POINTER__ == 4 void h (__INT32_TYPE__ i) { char a[65536] = ""; char *p = a + (i & (__INT32_TYPE__)0x8fffffffLL); f (p, *(p - 6)); /* { dg-bogus "\\\[-Warray-bounds" } */ } #endif