1 /* Copyright (C) 2002 Free Software Foundation.
2 
3    Test for composite comparison always true/false optimization.
4 
5    Written by Roger Sayle, 7th June 2002.  */
6 
7 extern void link_error0 ();
8 extern void link_error1 ();
9 
10 void
test1(int x,int y)11 test1 (int x, int y)
12 {
13   if ((x==y) && (x!=y))
14     link_error0();
15 }
16 
17 void
test2(int x,int y)18 test2 (int x, int y)
19 {
20   if ((x<y) && (x>y))
21     link_error0();
22 }
23 
24 void
test3(int x,int y)25 test3 (int x, int y)
26 {
27   if ((x<y) && (y<x))
28     link_error0();
29 }
30 
31 void
test4(int x,int y)32 test4 (int x, int y)
33 {
34   if ((x==y) || (x!=y))
35     {
36     }
37   else
38     link_error1 ();
39 }
40 
41 void
test5(int x,int y)42 test5 (int x, int y)
43 {
44   if ((x>=y) || (x<y))
45     {
46     }
47   else
48     link_error1 ();
49 }
50 
51 void
test6(int x,int y)52 test6 (int x, int y)
53 {
54   if ((x<=y) || (y<x))
55     {
56     }
57   else
58     link_error1 ();
59 }
60 
61 void
all_tests(int x,int y)62 all_tests (int x, int y)
63 {
64   test1 (x, y);
65   test2 (x, y);
66   test3 (x, y);
67   test4 (x, y);
68   test5 (x, y);
69   test6 (x, y);
70 }
71 
72 int
main()73 main ()
74 {
75   all_tests (0, 0);
76   all_tests (1, 2);
77   all_tests (4, 3);
78 
79   return 0;
80 }
81 
82 #ifndef __OPTIMIZE__
link_error0()83 void link_error0() {}
link_error1()84 void link_error1() {}
85 #endif /* ! __OPTIMIZE__ */
86 
87