re PR middle-end/42049 (ICE with -O2 - internal compiler error: in expand_expr_real_1, at expr.c:9314)
PR middle-end/42049 * builtins.c (expand_builtin_strcpy_args): Handle COMPOUND_EXPRs potentially returned from folding strcpy. * gcc.c-torture/compile/pr42049.c: New test. From-SVN: r154952
This commit is contained in:
parent
80fa46179c
commit
762de626f7
|
@ -1,3 +1,8 @@
|
|||
2009-12-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/42049
|
||||
* gcc.c-torture/compile/pr42049.c: New test.
|
||||
|
||||
2009-12-03 Quentin Ochem <ochem@adacore.com>
|
||||
|
||||
* gnat.dg/controlled5.adb: New test.
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/* PR middle-end/42049 */
|
||||
|
||||
extern char *strcpy (char *s1, const char *s2);
|
||||
struct S { char s[4]; };
|
||||
|
||||
int
|
||||
foo (int x, char **y)
|
||||
{
|
||||
char const *a;
|
||||
char const *b;
|
||||
struct S s[9];
|
||||
long i;
|
||||
if (x > 1)
|
||||
a = y[1];
|
||||
else
|
||||
a = "abc";
|
||||
if (x > 2)
|
||||
b = y[2];
|
||||
else
|
||||
b = "def";
|
||||
strcpy (s[0].s, a);
|
||||
strcpy (s[1].s, b);
|
||||
for (i = 2; i < x - 2 && i < 8; i++)
|
||||
strcpy (s[i].s, y[i + 1]);
|
||||
s[i].s[0] = '\0';
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue