| /* PR tree-optimization/83446 - Bootstrap failed on i686 |
| { dg-do compile } |
| { dg-options "-O2 -Warray-bounds" } */ |
| |
| char a[4]; |
| |
| void f0i (void *d, int n) |
| { |
| if (n < 0) n = 0; |
| |
| __builtin_memcpy (d, a + sizeof a - n, n); |
| } |
| |
| void f0L (void *d, long n) |
| { |
| if (n < 0) n = 0; |
| |
| __builtin_memcpy (d, a + sizeof a - n, n); |
| } |
| |
| void f0u (void *d, unsigned n) |
| { |
| if (n < 0) n = 1; |
| |
| __builtin_memcpy (d, a + sizeof a - n, n); /* { dg-bogus "\\\[-Warray-bounds" } */ |
| } |
| |
| void f1lu (void *d, unsigned long n) |
| { |
| if (n < 1) n = 1; |
| |
| __builtin_memcpy (d, a + sizeof a - n, n); /* { dg-bogus "\\\[-Warray-bounds" } */ |
| } |