(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
compile/
20050721-1.c
       1  /* Test for PR target/20191.  */
       2  
       3  struct S1;
       4  
       5  struct S1 {
       6    struct S1 *next;
       7    float x;
       8  };
       9  
      10  struct S2 {
      11    float y;
      12  };
      13  
      14  extern int func_ex1 (float);
      15  
      16  extern int f;
      17  extern float n;
      18  extern struct S1 *bp1;
      19  extern struct S2 *bp2;
      20  
      21  inline float
      22  func1 (int f, struct S2 *p2)
      23  {
      24    float a;
      25  
      26    if (f)
      27      a = n >= p2->y ? n : p2->y;
      28    else
      29      a = n;
      30    return a;
      31  }
      32  
      33  inline float
      34  func2 (struct S1 *p1, struct S2 *p2)
      35  {
      36    float a, b;
      37  
      38    if(n <= 1.0)
      39      b = func1 (f, p2);
      40    else
      41      {
      42         a = n <= p1->x ? 0.0 : p1->x;
      43         b = a >= p2->y ? a : p2->y;
      44      }
      45    return(b);
      46  }
      47  
      48  void
      49  func3 (struct S1 *p)
      50  {
      51    float a = 0.0;
      52  
      53    if (f)
      54      a = func2 (bp1, bp2);
      55    if (func_ex1 (a))
      56      bp1 = p;
      57  }