1 /* Copyright (C) 2002 Free Software Foundation. 2 3 Ensure that the composite comparison optimization doesn't misfire 4 and attempt to combine a signed comparison with an unsigned one. 5 6 Written by Roger Sayle, 3rd June 2002. */ 7 8 extern void abort (void); 9 10 int 11 foo (int x, int y) 12 { 13 /* If miscompiled the following may become "x == y". */ 14 return (x<=y) && ((unsigned int)x >= (unsigned int)y); 15 } 16 17 int 18 main () 19 { 20 if (! foo (-1,0)) 21 abort (); 22 return 0; 23 } 24 25