@@ -134,39 +134,74 @@ void c_typecheck_baset::typecheck_type(typet &type)
134
134
typet result;
135
135
136
136
if (mode==" __QI__" ) // 8 bits
137
- result=is_signed?signed_char_type ():unsigned_char_type ();
137
+ if (is_signed)
138
+ result=signed_char_type ();
139
+ else
140
+ result=unsigned_char_type ();
138
141
else if (mode==" __byte__" ) // 8 bits
139
- result=is_signed?signed_char_type ():unsigned_char_type ();
142
+ if (is_signed)
143
+ result=signed_char_type ();
144
+ else
145
+ result=unsigned_char_type ();
140
146
else if (mode==" __HI__" ) // 16 bits
141
- result=is_signed?signed_short_int_type ():unsigned_short_int_type ();
147
+ if (is_signed)
148
+ result=signed_short_int_type ();
149
+ else
150
+ result=unsigned_short_int_type ();
142
151
else if (mode==" __SI__" ) // 32 bits
143
- result=is_signed?signed_int_type ():unsigned_int_type ();
152
+ if (is_signed)
153
+ result=signed_int_type ();
154
+ else
155
+ result=unsigned_int_type ();
144
156
else if (mode==" __word__" ) // long int, we think
145
- result=is_signed?signed_long_int_type ():unsigned_long_int_type ();
157
+ if (is_signed)
158
+ result=signed_long_int_type ();
159
+ else
160
+ result=unsigned_long_int_type ();
146
161
else if (mode==" __pointer__" ) // we think this is size_t/ssize_t
147
- result=is_signed?signed_size_type ():size_type ();
162
+ if (is_signed)
163
+ result=signed_size_type ();
164
+ else
165
+ result=size_type ();
148
166
else if (mode==" __DI__" ) // 64 bits
149
167
{
150
168
if (config.ansi_c .long_int_width ==64 )
151
- result=is_signed?signed_long_int_type ():unsigned_long_int_type ();
169
+ if (is_signed)
170
+ result=signed_long_int_type ();
171
+ else
172
+ result=unsigned_long_int_type ();
152
173
else
153
174
{
154
175
assert (config.ansi_c .long_long_int_width ==64 );
155
- result=
156
- is_signed?signed_long_long_int_type ():unsigned_long_long_int_type ();
176
+
177
+ if (is_signed)
178
+ result=signed_long_long_int_type ();
179
+ else
180
+ result=unsigned_long_long_int_type ();
157
181
}
158
182
}
159
183
else if (mode==" __TI__" ) // 128 bits
160
- result=is_signed?gcc_signed_int128_type ():gcc_unsigned_int128_type ();
184
+ if (is_signed)
185
+ result=gcc_signed_int128_type ();
186
+ else
187
+ result=gcc_unsigned_int128_type ();
161
188
else if (mode==" __V2SI__" ) // vector of 2 ints, deprecated by gcc
162
- result=
163
- vector_typet (
164
- is_signed?signed_int_type ():unsigned_int_type (),
189
+ if (is_signed)
190
+ result=vector_typet (
191
+ signed_int_type (),
192
+ from_integer (2 , size_type ()));
193
+ else
194
+ result=vector_typet (
195
+ unsigned_int_type (),
165
196
from_integer (2 , size_type ()));
166
197
else if (mode==" __V4SI__" ) // vector of 4 ints, deprecated by gcc
167
- result=
168
- vector_typet (
169
- is_signed?signed_int_type ():unsigned_int_type (),
198
+ if (is_signed)
199
+ result=vector_typet (
200
+ signed_int_type (),
201
+ from_integer (4 , size_type ()));
202
+ else
203
+ result=vector_typet (
204
+ unsigned_int_type (),
170
205
from_integer (4 , size_type ()));
171
206
else // give up, just use subtype
172
207
result=type.subtype ();
0 commit comments