1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -Wstrict-overflow=3" } */ 3 typedef __UINTPTR_TYPE__ ptrcast; 4 5 volatile unsigned long * sat_add(volatile unsigned long * ptr,unsigned long i,volatile unsigned long * end)6sat_add(volatile unsigned long *ptr, unsigned long i, volatile unsigned long *end) 7 { 8 if ((ptrcast)ptr + i * sizeof(*ptr) > (ptrcast)ptr) /* { dg-bogus "pointer wraparound" } */ 9 return ptr + i; 10 else 11 return end; 12 } 13 14 15