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)6 sat_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