aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr42049.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr42049.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr42049.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr42049.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr42049.c
new file mode 100644
index 000000000..b2ebe52ef
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr42049.c
@@ -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;
+}