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:
Jakub Jelinek 2009-12-03 16:34:56 +01:00 committed by Jakub Jelinek
parent 80fa46179c
commit 762de626f7
2 changed files with 32 additions and 0 deletions

View File

@ -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.

View File

@ -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;
}