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>
|
2009-12-03 Quentin Ochem <ochem@adacore.com>
|
||||||
|
|
||||||
* gnat.dg/controlled5.adb: New test.
|
* 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