aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/gcc.dg/20040622-1.c13
-rw-r--r--gcc/testsuite/gcc.dg/20040622-2.c10
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/20040622-1.c b/gcc/testsuite/gcc.dg/20040622-1.c
new file mode 100644
index 0000000..4562fe6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040622-1.c
@@ -0,0 +1,13 @@
+/* { dg-options "-Os -mlong-double-128" } */
+/* { dg-do compile { target rs6000-*-* powerpc-*-* } } */
+/* Make sure compiler doesn't generate [reg+reg] address mode
+ for long doubles. */
+union arg {
+ int intarg;
+ long double longdoublearg;
+};
+long double d;
+int va(int n, union arg **argtable)
+{
+ (*argtable)[n].longdoublearg = d;
+}
diff --git a/gcc/testsuite/gcc.dg/20040622-2.c b/gcc/testsuite/gcc.dg/20040622-2.c
new file mode 100644
index 0000000..3297401
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040622-2.c
@@ -0,0 +1,10 @@
+/* { dg-do link } */
+/* This validates codegen for [r1+32760] on Darwin. */
+void f(char x[32688], double *y, double *z) __attribute__((noinline));
+void f(char x[32688], double *y, double *z) {}
+main() {
+ char x[32688];
+ double y, z;
+ y = z = 3.0;
+ f(x, &y, &z);
+}