/* PR middle-end/92014 - bogus warning: writing 8 bytes into a region | |
of size 1 in timezone/zic.c | |
{ dg-do compile } | |
{ dg-options "-O2 -Wall" } */ | |
struct | |
{ | |
char *s1, *s2; | |
char c; | |
} z; | |
void f (char **a, int i, int j) | |
{ | |
char * cp = __builtin_strchr (a[i], '%'); | |
if (cp && *++cp != 's') | |
return; | |
z.s1 = __builtin_strdup (a[i]); | |
if (!z.s1) __builtin_abort (); | |
z.s2 = __builtin_strdup (a[j]); | |
if (!z.s2) __builtin_abort (); | |
z.c = cp ? *cp : '\0'; // { dg-bogus "\\\[-Wstringop-overflow" } | |
} |