/* PR middle-end/88273 - bogus warning: 'memcpy' offset [-527, -529] | |
is out of the bounds [0, 16] | |
{ dg-do compile } | |
{ dg-options "-O2 -Wall" } */ | |
typedef __SIZE_TYPE__ size_t; | |
void *q; | |
size_t x, y; | |
inline void f (char *p, int i, size_t j) | |
{ | |
size_t n = y ? y : j; | |
p += x - i; | |
__builtin_memcpy (q, p, n); /* { dg-bogus "bounds" } */ | |
x = n; | |
} | |
void g (void) | |
{ | |
struct { char a[16]; } s; | |
f (q, 0, sizeof s); | |
f (s.a, 33 * sizeof s, 1); | |
} |