* gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix.
authorJanis Johnson <janis187@us.ibm.com>
Thu, 21 Jul 2005 22:00:27 +0000 (22:00 +0000)
committerJanis Johnson <janis@gcc.gnu.org>
Thu, 21 Jul 2005 22:00:27 +0000 (22:00 +0000)
From-SVN: r102252

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20050721-1.c [new file with mode: 0644]

index f5497d168301c3e9da823ed0095e79b6c8831b9d..7f7b13330f1af9abd34fab9242e8e441b693e87e 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-21  Janis Johnson  <janis187@us.ibm.com>
+
+       * gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix.
+
 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR middle-end/19055
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050721-1.c b/gcc/testsuite/gcc.c-torture/compile/20050721-1.c
new file mode 100644 (file)
index 0000000..25a781d
--- /dev/null
@@ -0,0 +1,57 @@
+/* Test for PR target/20191.  */
+
+struct S1;
+
+struct S1 {
+  struct S1 *next;
+  float x;
+};
+
+struct S2 {
+  float y;
+};
+
+extern int func_ex1 (float);
+
+extern int f;
+extern float n;
+extern struct S1 *bp1;
+extern struct S2 *bp2;
+
+inline float
+func1 (int f, struct S2 *p2)
+{
+  float a;
+
+  if (f)
+    a = n >= p2->y ? n : p2->y;
+  else
+    a = n;
+  return a;
+}
+
+inline float
+func2 (struct S1 *p1, struct S2 *p2)
+{
+  float a, b;
+
+  if(n <= 1.0)
+    b = func1 (f, p2);
+  else
+    {
+       a = n <= p1->x ? 0.0 : p1->x;
+       b = a >= p2->y ? a : p2->y;
+    }
+  return(b);
+}
+
+void
+func3 (struct S1 *p)
+{
+  float a = 0.0;
+
+  if (f)
+    a = func2 (bp1, bp2);
+  if (func_ex1 (a))
+    bp1 = p;
+}