1128788Ssmkellydnl $FreeBSD$
2128788Ssmkellydnl A regression test for m4 C operators		(ksb,petef)
3128788Ssmkellydnl If you think you have a short-circuiting m4, run us m4 -DSHORCIRCUIT=yes
4128788Ssmkellydnl
5128788Ssmkellydnl first level of precedence
6128788Ssmkellyifelse(expr(-7),-7,,`failed -
7128788Ssmkelly')dnl
8128788Ssmkellyifelse(expr(- -2),2,,`failed -
9128788Ssmkelly')dnl
10128788Ssmkellyifelse(expr(!0),1,,`failed !
11128788Ssmkelly')dnl
12128788Ssmkellyifelse(expr(!7),0,,`failed !
13128788Ssmkelly')dnl
14128788Ssmkellyifelse(expr(~-1),0,,`failed ~
15128788Ssmkelly')dnl
16128788Ssmkellydnl next level of precedence
17128788Ssmkellyifelse(expr(3*5),15,,`failed *
18128788Ssmkelly')dnl
19128788Ssmkellyifelse(expr(3*0),0,,`failed *
20128788Ssmkelly')dnl
21128788Ssmkellyifelse(expr(11/2),5,,`failed /
22128788Ssmkelly')dnl
23128788Ssmkellyifelse(expr(1/700),0,,`failed /
24128788Ssmkelly')dnl
25128788Ssmkellyifelse(expr(10%5),0,,`failed %
26128788Ssmkelly')dnl
27128788Ssmkellyifelse(expr(2%5),2,,`failed %
28128788Ssmkelly')dnl
29128788Ssmkellyifelse(expr(2%-1),0,,`failed %
30128788Ssmkelly')dnl
31128788Ssmkellydnl next level of precedence
32128788Ssmkellyifelse(expr(2+2),4,,`failed +
33128788Ssmkelly')dnl
34128788Ssmkellyifelse(expr(2+-2),0,,`failed +
35128788Ssmkelly')dnl
36128788Ssmkellyifelse(expr(2- -2),4,,`failed -
37128788Ssmkelly')dnl
38128788Ssmkellyifelse(expr(2-2),0,,`failed -
39128788Ssmkelly')dnl
40128788Ssmkellydnl next level of precedence
41128788Ssmkellyifelse(expr(1<<4),16,,`failed <<
42128788Ssmkelly')dnl
43128788Ssmkellyifelse(expr(16>>4),1,,`failed >>
44128788Ssmkelly')dnl
45128788Ssmkellydnl next level of precedence
46128788Ssmkellyifelse(expr(4<4),0,,`failed <
47128788Ssmkelly')dnl
48128788Ssmkellyifelse(expr(4<5),1,,`failed <
49128788Ssmkelly')dnl
50128788Ssmkellyifelse(expr(4<3),0,,`failed <
51128788Ssmkelly')dnl
52128788Ssmkellyifelse(expr(4>4),0,,`failed >
53128788Ssmkelly')dnl
54128788Ssmkellyifelse(expr(4>5),0,,`failed >
55128788Ssmkelly')dnl
56128788Ssmkellyifelse(expr(4>3),1,,`failed >
57128788Ssmkelly')dnl
58128788Ssmkellyifelse(expr(4<=4),1,,`failed <=
59128788Ssmkelly')dnl
60128788Ssmkellyifelse(expr(4<=5),1,,`failed <=
61128788Ssmkelly')dnl
62128788Ssmkellyifelse(expr(4<=3),0,,`failed <=
63128788Ssmkelly')dnl
64128788Ssmkellyifelse(expr(4>=4),1,,`failed >=
65128788Ssmkelly')dnl
66128788Ssmkellyifelse(expr(4>=5),0,,`failed >=
67128788Ssmkelly')dnl
68128788Ssmkellyifelse(expr(4>=3),1,,`failed >=
69128788Ssmkelly')dnl
70128788Ssmkellydnl next level of precedence
71128788Ssmkellyifelse(expr(1==1),1,,`failed ==
72128788Ssmkelly')dnl
73128788Ssmkellyifelse(expr(1==-1),0,,`failed ==
74128788Ssmkelly')dnl
75128788Ssmkellyifelse(expr(1!=1),0,,`failed !=
76128788Ssmkelly')dnl
77128788Ssmkellyifelse(expr(1!=2),1,,`failed !=
78128788Ssmkelly')dnl
79128788Ssmkellydnl next level of precedence
80128788Ssmkellyifelse(expr(3&5),1,,`failed &
81128788Ssmkelly')dnl
82128788Ssmkellyifelse(expr(8&7),0,,`failed &
83128788Ssmkelly')dnl
84128788Ssmkellydnl next level of precedence
85128788Ssmkellyifelse(expr(1^1),0,,`failed ^
86128788Ssmkelly')dnl
87128788Ssmkellyifelse(expr(21^5),16,,`failed ^
88128788Ssmkelly')dnl
89128788Ssmkellydnl next level of precedence
90128788Ssmkellyifelse(expr(1|1),1,,`failed |
91128788Ssmkelly')dnl
92128788Ssmkellyifelse(expr(21|5),21,,`failed |
93128788Ssmkelly')dnl
94128788Ssmkellyifelse(expr(100|1),101,,`failed |
95128788Ssmkelly')dnl
96128788Ssmkellydnl next level of precedence
97128788Ssmkellyifelse(expr(1&&1),1,,`failed &&
98128788Ssmkelly')dnl
99128788Ssmkellyifelse(expr(0&&1),0,,`failed &&
100128788Ssmkelly')dnl
101128788Ssmkellyifelse(expr(1&&0),0,,`failed &&
102128788Ssmkelly')dnl
103128788Ssmkellyifelse(SHORTCIRCUIT,`yes',`ifelse(expr(0&&10/0),0,,`failed && shortcircuit
104128788Ssmkelly')')dnl
105128788Ssmkellydnl next level of precedence
106128788Ssmkellyifelse(expr(1||1),1,,`failed ||
107128788Ssmkelly')dnl
108128788Ssmkellyifelse(expr(1||0),1,,`failed ||
109128788Ssmkelly')dnl
110128788Ssmkellyifelse(expr(0||0),0,,`failed ||
111128788Ssmkelly')dnl
112128788Ssmkellyifelse(SHORTCIRCUIT,`yes',`ifelse(expr(1||10/0),1,,`failed || shortcircuit
113128788Ssmkelly')')dnl
114128788Ssmkellydnl next level of precedence
115128788Ssmkellyifelse(expr(0 ? 2 : 5),5,,`failed ?:
116128788Ssmkelly')dnl
117128788Ssmkellyifelse(expr(1 ? 2 : 5),2,,`failed ?:
118128788Ssmkelly')dnl
119128788Ssmkellyifelse(SHORTCIRCUIT,`yes',`ifelse(expr(0 ? 10/0 : 7),7,,`failed ?: shortcircuit
120128788Ssmkelly')')dnl
121128788Ssmkellyifelse(SHORTCIRCUIT,`yes',`ifelse(expr(1 ? 7 : 10/0),7,,`failed ?: shortcircuit
122128788Ssmkelly')')dnl
123128788Ssmkellydnl operator precedence
124128788Ssmkellyifelse(expr(!0*-2),-2,,`precedence wrong, ! *
125128788Ssmkelly')dnl
126128788Ssmkellyifelse(expr(~8/~2),3,,`precedence wrong ~ /
127128788Ssmkelly')dnl
128128788Ssmkellyifelse(expr(~-20%7),5,,`precedence wrong ~ %
129128788Ssmkelly')dnl
130128788Ssmkellyifelse(expr(3*2+100),106,,`precedence wrong * +
131128788Ssmkelly')dnl
132128788Ssmkellyifelse(expr(3+2*100),203,,`precedence wrong + *
133128788Ssmkelly')dnl
134128788Ssmkellyifelse(expr(2%5-6/3),0,,`precedence wrong % -
135128788Ssmkelly')dnl
136128788Ssmkellyifelse(expr(2/5-5%3),-2,,`precedence wrong / -
137128788Ssmkelly')dnl
138128788Ssmkellyifelse(expr(2+5%5+1),3,,`precedence wrong % +
139128788Ssmkelly')dnl
140128788Ssmkellyifelse(expr(7+9<<1),32,,`precedence wrong + <<
141128788Ssmkelly')dnl
142128788Ssmkellyifelse(expr(35-3>>2),8,,`precedence wrong - >>
143128788Ssmkelly')dnl
144128788Ssmkellyifelse(expr(9<10<<5),1,,`precedence wrong << <
145128788Ssmkelly')dnl
146128788Ssmkellyifelse(expr(9>10<<5),0,,`precedence wrong << >
147128788Ssmkelly')dnl
148128788Ssmkellyifelse(expr(32>>2<32),1,,`precedence wrong >> <
149128788Ssmkelly')dnl
150128788Ssmkellyifelse(expr(9<=10<<5),1,,`precedence wrong << <
151128788Ssmkelly')dnl
152128788Ssmkellyifelse(expr(5<<1<=20>>1),1,,`precedence wrong << <=
153128788Ssmkelly')dnl
154128788Ssmkellyifelse(expr(5<<1>=20>>1),1,,`precedence wrong << >=
155128788Ssmkelly')dnl
156128788Ssmkellyifelse(expr(0<7==5>=5),1,,`precedence wrong < ==
157128788Ssmkelly')dnl
158128788Ssmkellyifelse(expr(0<7!=5>=5),0,,`precedence wrong < !=
159128788Ssmkelly')dnl
160128788Ssmkellyifelse(expr(0>7==5>=5),0,,`precedence wrong > ==
161128788Ssmkelly')dnl
162128788Ssmkellyifelse(expr(0>7!=5>=5),1,,`precedence wrong > !=
163128788Ssmkelly')dnl
164128788Ssmkellyifelse(expr(1&7==7),1,,`precedence wrong & ==
165128788Ssmkelly')dnl
166128788Ssmkellyifelse(expr(0&7!=6),0,,`precedence wrong & !=
167128788Ssmkelly')dnl
168128788Ssmkellyifelse(expr(9&1|5),5,,`precedence wrong & |
169128788Ssmkelly')dnl
170128788Ssmkellyifelse(expr(9&1^5),4,,`precedence wrong & ^
171128788Ssmkelly')dnl
172128788Ssmkellyifelse(expr(9^1|5),13,,`precedence wrong ^ |
173128788Ssmkelly')dnl
174128788Ssmkellyifelse(expr(5|0&&1),1,,`precedence wrong | &&
175128788Ssmkelly')dnl
176128788Ssmkellyifelse(expr(5&&0||0&&5||5),1,,`precedence wrong && ||
177128788Ssmkelly')dnl
178128788Ssmkellyifelse(expr(0 || 1 ? 0 : 1),0,,`precedence wrong || ?:
179128788Ssmkelly')dnl
180128788Ssmkellyifelse(expr(5&&(0||0)&&(5||5)),0,,`precedence wrong || parens
181128788Ssmkelly')dnl
182