1 /* { dg-do compile } */
2 /* { dg-options "-O2 -Wstrict-overflow=3" } */
3 typedef __UINTPTR_TYPE__ ptrcast;
4
5 volatile unsigned long *
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