OSDN Git Service

* gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix.
authorjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jul 2005 22:00:27 +0000 (22:00 +0000)
committerjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jul 2005 22:00:27 +0000 (22:00 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102252 138bc75d-0d04-0410-961f-82ee72b054a4

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

index f5497d1..7f7b133 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;
+}