math.m4 revision 1.1 1 1.1 drochner dnl $NetBSD: math.m4,v 1.1 2005/10/06 17:23:23 drochner Exp $
2 1.1 drochner dnl FreeBSD: /repoman/r/ncvs/src/usr.bin/m4/TEST/math.m4,v 1.1 2004/05/01 03:27:05 smkelly Exp
3 1.1 drochner dnl A regression test for m4 C operators (ksb,petef)
4 1.1 drochner dnl If you think you have a short-circuiting m4, run us m4 -DSHORCIRCUIT=yes
5 1.1 drochner dnl
6 1.1 drochner dnl first level of precedence
7 1.1 drochner ifelse(expr(-7),-7,,`failed -
8 1.1 drochner ')dnl
9 1.1 drochner ifelse(expr(- -2),2,,`failed -
10 1.1 drochner ')dnl
11 1.1 drochner ifelse(expr(!0),1,,`failed !
12 1.1 drochner ')dnl
13 1.1 drochner ifelse(expr(!7),0,,`failed !
14 1.1 drochner ')dnl
15 1.1 drochner ifelse(expr(~-1),0,,`failed ~
16 1.1 drochner ')dnl
17 1.1 drochner dnl next level of precedence
18 1.1 drochner ifelse(expr(3*5),15,,`failed *
19 1.1 drochner ')dnl
20 1.1 drochner ifelse(expr(3*0),0,,`failed *
21 1.1 drochner ')dnl
22 1.1 drochner ifelse(expr(11/2),5,,`failed /
23 1.1 drochner ')dnl
24 1.1 drochner ifelse(expr(1/700),0,,`failed /
25 1.1 drochner ')dnl
26 1.1 drochner ifelse(expr(10%5),0,,`failed %
27 1.1 drochner ')dnl
28 1.1 drochner ifelse(expr(2%5),2,,`failed %
29 1.1 drochner ')dnl
30 1.1 drochner ifelse(expr(2%-1),0,,`failed %
31 1.1 drochner ')dnl
32 1.1 drochner dnl next level of precedence
33 1.1 drochner ifelse(expr(2+2),4,,`failed +
34 1.1 drochner ')dnl
35 1.1 drochner ifelse(expr(2+-2),0,,`failed +
36 1.1 drochner ')dnl
37 1.1 drochner ifelse(expr(2- -2),4,,`failed -
38 1.1 drochner ')dnl
39 1.1 drochner ifelse(expr(2-2),0,,`failed -
40 1.1 drochner ')dnl
41 1.1 drochner dnl next level of precedence
42 1.1 drochner ifelse(expr(1<<4),16,,`failed <<
43 1.1 drochner ')dnl
44 1.1 drochner ifelse(expr(16>>4),1,,`failed >>
45 1.1 drochner ')dnl
46 1.1 drochner dnl next level of precedence
47 1.1 drochner ifelse(expr(4<4),0,,`failed <
48 1.1 drochner ')dnl
49 1.1 drochner ifelse(expr(4<5),1,,`failed <
50 1.1 drochner ')dnl
51 1.1 drochner ifelse(expr(4<3),0,,`failed <
52 1.1 drochner ')dnl
53 1.1 drochner ifelse(expr(4>4),0,,`failed >
54 1.1 drochner ')dnl
55 1.1 drochner ifelse(expr(4>5),0,,`failed >
56 1.1 drochner ')dnl
57 1.1 drochner ifelse(expr(4>3),1,,`failed >
58 1.1 drochner ')dnl
59 1.1 drochner ifelse(expr(4<=4),1,,`failed <=
60 1.1 drochner ')dnl
61 1.1 drochner ifelse(expr(4<=5),1,,`failed <=
62 1.1 drochner ')dnl
63 1.1 drochner ifelse(expr(4<=3),0,,`failed <=
64 1.1 drochner ')dnl
65 1.1 drochner ifelse(expr(4>=4),1,,`failed >=
66 1.1 drochner ')dnl
67 1.1 drochner ifelse(expr(4>=5),0,,`failed >=
68 1.1 drochner ')dnl
69 1.1 drochner ifelse(expr(4>=3),1,,`failed >=
70 1.1 drochner ')dnl
71 1.1 drochner dnl next level of precedence
72 1.1 drochner ifelse(expr(1==1),1,,`failed ==
73 1.1 drochner ')dnl
74 1.1 drochner ifelse(expr(1==-1),0,,`failed ==
75 1.1 drochner ')dnl
76 1.1 drochner ifelse(expr(1!=1),0,,`failed !=
77 1.1 drochner ')dnl
78 1.1 drochner ifelse(expr(1!=2),1,,`failed !=
79 1.1 drochner ')dnl
80 1.1 drochner dnl next level of precedence
81 1.1 drochner ifelse(expr(3&5),1,,`failed &
82 1.1 drochner ')dnl
83 1.1 drochner ifelse(expr(8&7),0,,`failed &
84 1.1 drochner ')dnl
85 1.1 drochner dnl next level of precedence
86 1.1 drochner ifelse(expr(1^1),0,,`failed ^
87 1.1 drochner ')dnl
88 1.1 drochner ifelse(expr(21^5),16,,`failed ^
89 1.1 drochner ')dnl
90 1.1 drochner dnl next level of precedence
91 1.1 drochner ifelse(expr(1|1),1,,`failed |
92 1.1 drochner ')dnl
93 1.1 drochner ifelse(expr(21|5),21,,`failed |
94 1.1 drochner ')dnl
95 1.1 drochner ifelse(expr(100|1),101,,`failed |
96 1.1 drochner ')dnl
97 1.1 drochner dnl next level of precedence
98 1.1 drochner ifelse(expr(1&&1),1,,`failed &&
99 1.1 drochner ')dnl
100 1.1 drochner ifelse(expr(0&&1),0,,`failed &&
101 1.1 drochner ')dnl
102 1.1 drochner ifelse(expr(1&&0),0,,`failed &&
103 1.1 drochner ')dnl
104 1.1 drochner ifelse(SHORTCIRCUIT,`yes',`ifelse(expr(0&&10/0),0,,`failed && shortcircuit
105 1.1 drochner ')')dnl
106 1.1 drochner dnl next level of precedence
107 1.1 drochner ifelse(expr(1||1),1,,`failed ||
108 1.1 drochner ')dnl
109 1.1 drochner ifelse(expr(1||0),1,,`failed ||
110 1.1 drochner ')dnl
111 1.1 drochner ifelse(expr(0||0),0,,`failed ||
112 1.1 drochner ')dnl
113 1.1 drochner ifelse(SHORTCIRCUIT,`yes',`ifelse(expr(1||10/0),1,,`failed || shortcircuit
114 1.1 drochner ')')dnl
115 1.1 drochner dnl next level of precedence
116 1.1 drochner ifelse(expr(0 ? 2 : 5),5,,`failed ?:
117 1.1 drochner ')dnl
118 1.1 drochner ifelse(expr(1 ? 2 : 5),2,,`failed ?:
119 1.1 drochner ')dnl
120 1.1 drochner ifelse(SHORTCIRCUIT,`yes',`ifelse(expr(0 ? 10/0 : 7),7,,`failed ?: shortcircuit
121 1.1 drochner ')')dnl
122 1.1 drochner ifelse(SHORTCIRCUIT,`yes',`ifelse(expr(1 ? 7 : 10/0),7,,`failed ?: shortcircuit
123 1.1 drochner ')')dnl
124 1.1 drochner dnl operator precedence
125 1.1 drochner ifelse(expr(!0*-2),-2,,`precedence wrong, ! *
126 1.1 drochner ')dnl
127 1.1 drochner ifelse(expr(~8/~2),3,,`precedence wrong ~ /
128 1.1 drochner ')dnl
129 1.1 drochner ifelse(expr(~-20%7),5,,`precedence wrong ~ %
130 1.1 drochner ')dnl
131 1.1 drochner ifelse(expr(3*2+100),106,,`precedence wrong * +
132 1.1 drochner ')dnl
133 1.1 drochner ifelse(expr(3+2*100),203,,`precedence wrong + *
134 1.1 drochner ')dnl
135 1.1 drochner ifelse(expr(2%5-6/3),0,,`precedence wrong % -
136 1.1 drochner ')dnl
137 1.1 drochner ifelse(expr(2/5-5%3),-2,,`precedence wrong / -
138 1.1 drochner ')dnl
139 1.1 drochner ifelse(expr(2+5%5+1),3,,`precedence wrong % +
140 1.1 drochner ')dnl
141 1.1 drochner ifelse(expr(7+9<<1),32,,`precedence wrong + <<
142 1.1 drochner ')dnl
143 1.1 drochner ifelse(expr(35-3>>2),8,,`precedence wrong - >>
144 1.1 drochner ')dnl
145 1.1 drochner ifelse(expr(9<10<<5),1,,`precedence wrong << <
146 1.1 drochner ')dnl
147 1.1 drochner ifelse(expr(9>10<<5),0,,`precedence wrong << >
148 1.1 drochner ')dnl
149 1.1 drochner ifelse(expr(32>>2<32),1,,`precedence wrong >> <
150 1.1 drochner ')dnl
151 1.1 drochner ifelse(expr(9<=10<<5),1,,`precedence wrong << <
152 1.1 drochner ')dnl
153 1.1 drochner ifelse(expr(5<<1<=20>>1),1,,`precedence wrong << <=
154 1.1 drochner ')dnl
155 1.1 drochner ifelse(expr(5<<1>=20>>1),1,,`precedence wrong << >=
156 1.1 drochner ')dnl
157 1.1 drochner ifelse(expr(0<7==5>=5),1,,`precedence wrong < ==
158 1.1 drochner ')dnl
159 1.1 drochner ifelse(expr(0<7!=5>=5),0,,`precedence wrong < !=
160 1.1 drochner ')dnl
161 1.1 drochner ifelse(expr(0>7==5>=5),0,,`precedence wrong > ==
162 1.1 drochner ')dnl
163 1.1 drochner ifelse(expr(0>7!=5>=5),1,,`precedence wrong > !=
164 1.1 drochner ')dnl
165 1.1 drochner ifelse(expr(1&7==7),1,,`precedence wrong & ==
166 1.1 drochner ')dnl
167 1.1 drochner ifelse(expr(0&7!=6),0,,`precedence wrong & !=
168 1.1 drochner ')dnl
169 1.1 drochner ifelse(expr(9&1|5),5,,`precedence wrong & |
170 1.1 drochner ')dnl
171 1.1 drochner ifelse(expr(9&1^5),4,,`precedence wrong & ^
172 1.1 drochner ')dnl
173 1.1 drochner ifelse(expr(9^1|5),13,,`precedence wrong ^ |
174 1.1 drochner ')dnl
175 1.1 drochner ifelse(expr(5|0&&1),1,,`precedence wrong | &&
176 1.1 drochner ')dnl
177 1.1 drochner ifelse(expr(5&&0||0&&5||5),1,,`precedence wrong && ||
178 1.1 drochner ')dnl
179 1.1 drochner ifelse(expr(0 || 1 ? 0 : 1),0,,`precedence wrong || ?:
180 1.1 drochner ')dnl
181 1.1 drochner ifelse(expr(5&&(0||0)&&(5||5)),0,,`precedence wrong || parens
182 1.1 drochner ')dnl
183