From 58669148c9e700f02dcc9b489c21429375962755 Mon Sep 17 00:00:00 2001 From: Janis Johnson Date: Thu, 21 Jul 2005 22:00:27 +0000 Subject: [PATCH] * gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix. From-SVN: r102252 --- gcc/testsuite/ChangeLog | 4 ++ .../gcc.c-torture/compile/20050721-1.c | 57 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/20050721-1.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f5497d16830..7f7b13330f1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-07-21 Janis Johnson + + * gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix. + 2005-07-21 Andrew Pinski 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 index 00000000000..25a781ddd5a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20050721-1.c @@ -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; +} -- 2.30.2