aboutsummaryrefslogtreecommitdiff
path: root/SingleSource/Regression/C/gcc-c-torture/execute/20020314-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/20020314-1.c')
-rw-r--r--SingleSource/Regression/C/gcc-c-torture/execute/20020314-1.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/20020314-1.c b/SingleSource/Regression/C/gcc-c-torture/execute/20020314-1.c
new file mode 100644
index 00000000..2f68ae8f
--- /dev/null
+++ b/SingleSource/Regression/C/gcc-c-torture/execute/20020314-1.c
@@ -0,0 +1,37 @@
+/* { dg-require-effective-target alloca } */
+void f(void * a, double y)
+{
+}
+
+double g (double a, double b, double c, double d)
+{
+ double x, y, z;
+ void *p;
+
+ x = a + b;
+ y = c * d;
+
+ p = alloca (16);
+
+ f(p, y);
+ z = x * y * a;
+
+ return z + b;
+}
+
+main ()
+{
+ double a, b, c, d;
+ a = 1.0;
+ b = 0.0;
+ c = 10.0;
+ d = 0.0;
+
+ if (g (a, b, c, d) != 0.0)
+ abort ();
+
+ if (a != 1.0 || b != 0.0 || c != 10.0 || d != 0.0)
+ abort ();
+
+ exit (0);
+}