| /* PR tree-optimization/19828 */ |
| typedef __SIZE_TYPE__ size_t; |
| extern size_t strlen (const char *s); |
| extern int strncmp (const char *s1, const char *s2, size_t n); |
| extern void abort (void); |
| |
| const char *a[16] = { "a", "bc", "de", "fgh" }; |
| |
| int |
| foo (char *x, const char *y, size_t n) |
| { |
| size_t i, j = 0; |
| for (i = 0; i < n; i++) |
| { |
| if (strncmp (x + j, a[i], strlen (a[i])) != 0) |
| return 2; |
| j += strlen (a[i]); |
| if (y) |
| j += strlen (y); |
| } |
| return 0; |
| } |
| |
| int |
| main (void) |
| { |
| if (foo ("abcde", (const char *) 0, 3) != 0) |
| abort (); |
| return 0; |
| } |