aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-05-25 17:16:38 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-05-25 17:16:38 +0000
commitfb238648c42ed68efbf890c01cb9631a02455a2a (patch)
tree7f429ea3c58f47548597131ad820eed5ebdf874a /gcc
parent2acceeac67a10df936fd59f47e3ee72f87e162f5 (diff)
downloadgcc-fb238648c42ed68efbf890c01cb9631a02455a2a.zip
gcc-fb238648c42ed68efbf890c01cb9631a02455a2a.tar.gz
gcc-fb238648c42ed68efbf890c01cb9631a02455a2a.tar.bz2
re PR middle-end/17526 (libcpp is miscompiled with -fno-pcc-struct-return -O2)
2008-05-25 Richard Guenther <rguenther@suse.de> PR tree-optimization/17526 * gcc.dg/torture/pr17526.c: New testcase. From-SVN: r135876
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr17526.c27
2 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 951fe3d..27e51f8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/17526
+ * gcc.dg/torture/pr17526.c: New testcase.
+
2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/tg-tests.h: Fix spelling of FP_INFINITE.
diff --git a/gcc/testsuite/gcc.dg/torture/pr17526.c b/gcc/testsuite/gcc.dg/torture/pr17526.c
new file mode 100644
index 0000000..58b4791
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr17526.c
@@ -0,0 +1,27 @@
+/* { dg-do run } */
+/* { dg-options "-fno-pcc-struct-return" { target i?86-*-* } } */
+
+void abort(void);
+
+typedef struct { int i; } A;
+
+A __attribute__((noinline))
+foo(void)
+{
+ A a = { -1 };
+ return a;
+}
+
+void __attribute__((noinline))
+bar(A *p)
+{
+ *p = foo();
+}
+
+int main(void)
+{
+ A a;
+ bar(&a);
+ if (a.i != -1) abort();
+ return 0;
+}