| /* 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; | 
 | } |