| /* PR middle-end/100680 */ |
| /* { dg-do compile { target size32plus } } */ |
| /* { dg-options "-O2 -Wstringop-overread" } */ |
| |
| struct s { |
| char a[8]; |
| int i; |
| long l; |
| }; |
| |
| extern char ea[8]; |
| static char sa[8] = { 1, 2, 3, 4 }; |
| |
| int |
| test (void) |
| { |
| const struct s *ps = (const struct s *) 0x12345678L; |
| if (__builtin_memcmp (ps->a, ps->a, 8)) |
| return 0; |
| |
| if (__builtin_memcmp (ps->a, ea, 8)) /* { dg-bogus "exceeds source size 0" } */ |
| return 0; |
| |
| if (__builtin_memcmp (ps->a, sa, 8)) /* { dg-bogus "exceeds source size 0" } */ |
| return 0; |
| |
| if (__builtin_memcmp (ps->a, "abcdABCD", 8)) /* { dg-bogus "exceeds source size 0" } */ |
| return 0; |
| |
| return 1; |
| } |