@@ -106,7 +106,7 @@ void c_typecheck_baset::typecheck_type(typet &type)
106106 else if (type.id ()==ID_gcc_attribute_mode)
107107 {
108108 // get that mode
109- irep_idt mode= type.get (ID_size);
109+ const irep_idt gcc_attr_mode = type.get (ID_size);
110110
111111 // A list of all modes is at
112112 // http://www.delorie.com/gnu/docs/gcc/gccint_53.html
@@ -132,37 +132,37 @@ void c_typecheck_baset::typecheck_type(typet &type)
132132
133133 typet result;
134134
135- if (mode== " __QI__" ) // 8 bits
135+ if (gcc_attr_mode == " __QI__" ) // 8 bits
136136 if (is_signed)
137137 result=signed_char_type ();
138138 else
139139 result=unsigned_char_type ();
140- else if (mode== " __byte__" ) // 8 bits
140+ else if (gcc_attr_mode == " __byte__" ) // 8 bits
141141 if (is_signed)
142142 result=signed_char_type ();
143143 else
144144 result=unsigned_char_type ();
145- else if (mode== " __HI__" ) // 16 bits
145+ else if (gcc_attr_mode == " __HI__" ) // 16 bits
146146 if (is_signed)
147147 result=signed_short_int_type ();
148148 else
149149 result=unsigned_short_int_type ();
150- else if (mode== " __SI__" ) // 32 bits
150+ else if (gcc_attr_mode == " __SI__" ) // 32 bits
151151 if (is_signed)
152152 result=signed_int_type ();
153153 else
154154 result=unsigned_int_type ();
155- else if (mode== " __word__" ) // long int, we think
155+ else if (gcc_attr_mode == " __word__" ) // long int, we think
156156 if (is_signed)
157157 result=signed_long_int_type ();
158158 else
159159 result=unsigned_long_int_type ();
160- else if (mode== " __pointer__" ) // we think this is size_t/ssize_t
160+ else if (gcc_attr_mode == " __pointer__" ) // size_t/ssize_t, we think
161161 if (is_signed)
162162 result=signed_size_type ();
163163 else
164164 result=size_type ();
165- else if (mode== " __DI__" ) // 64 bits
165+ else if (gcc_attr_mode == " __DI__" ) // 64 bits
166166 {
167167 if (config.ansi_c .long_int_width ==64 )
168168 if (is_signed)
@@ -179,12 +179,12 @@ void c_typecheck_baset::typecheck_type(typet &type)
179179 result=unsigned_long_long_int_type ();
180180 }
181181 }
182- else if (mode== " __TI__" ) // 128 bits
182+ else if (gcc_attr_mode == " __TI__" ) // 128 bits
183183 if (is_signed)
184184 result=gcc_signed_int128_type ();
185185 else
186186 result=gcc_unsigned_int128_type ();
187- else if (mode== " __V2SI__" ) // vector of 2 ints, deprecated by gcc
187+ else if (gcc_attr_mode == " __V2SI__" ) // vector of 2 ints, deprecated
188188 if (is_signed)
189189 result=vector_typet (
190190 signed_int_type (),
@@ -193,7 +193,7 @@ void c_typecheck_baset::typecheck_type(typet &type)
193193 result=vector_typet (
194194 unsigned_int_type (),
195195 from_integer (2 , size_type ()));
196- else if (mode== " __V4SI__" ) // vector of 4 ints, deprecated by gcc
196+ else if (gcc_attr_mode == " __V4SI__" ) // vector of 4 ints, deprecated
197197 if (is_signed)
198198 result=vector_typet (
199199 signed_int_type (),
@@ -221,19 +221,19 @@ void c_typecheck_baset::typecheck_type(typet &type)
221221 {
222222 typet result;
223223
224- if (mode== " __SF__" ) // 32 bits
224+ if (gcc_attr_mode == " __SF__" ) // 32 bits
225225 result=float_type ();
226- else if (mode== " __DF__" ) // 64 bits
226+ else if (gcc_attr_mode == " __DF__" ) // 64 bits
227227 result=double_type ();
228- else if (mode== " __TF__" ) // 128 bits
228+ else if (gcc_attr_mode == " __TF__" ) // 128 bits
229229 result=gcc_float128_type ();
230- else if (mode== " __V2SF__" ) // vector of 2 floats, deprecated by gcc
230+ else if (gcc_attr_mode == " __V2SF__" ) // deprecated vector of 2 floats
231231 result=vector_typet (float_type (), from_integer (2 , size_type ()));
232- else if (mode== " __V2DF__" ) // vector of 2 doubles, deprecated by gcc
232+ else if (gcc_attr_mode == " __V2DF__" ) // deprecated vector of 2 doubles
233233 result=vector_typet (double_type (), from_integer (2 , size_type ()));
234- else if (mode== " __V4SF__" ) // vector of 4 floats, deprecated by gcc
234+ else if (gcc_attr_mode == " __V4SF__" ) // deprecated vector of 4 floats
235235 result=vector_typet (float_type (), from_integer (4 , size_type ()));
236- else if (mode== " __V4DF__" ) // vector of 4 doubles, deprecated by gcc
236+ else if (gcc_attr_mode == " __V4DF__" ) // deprecated vector of 4 doubles
237237 result=vector_typet (double_type (), from_integer (4 , size_type ()));
238238 else // give up, just use subtype
239239 result=type.subtype ();
@@ -248,11 +248,11 @@ void c_typecheck_baset::typecheck_type(typet &type)
248248 // gcc allows this, but clang doesn't -- see enums above
249249 typet result;
250250
251- if (mode== " __SC__" ) // 32 bits
251+ if (gcc_attr_mode == " __SC__" ) // 32 bits
252252 result=float_type ();
253- else if (mode== " __DC__" ) // 64 bits
253+ else if (gcc_attr_mode == " __DC__" ) // 64 bits
254254 result=double_type ();
255- else if (mode== " __TC__" ) // 128 bits
255+ else if (gcc_attr_mode == " __TC__" ) // 128 bits
256256 result=gcc_float128_type ();
257257 else // give up, just use subtype
258258 result=type.subtype ();
@@ -265,9 +265,9 @@ void c_typecheck_baset::typecheck_type(typet &type)
265265 else
266266 {
267267 error ().source_location =type.source_location ();
268- error () << " attribute mode `" << mode
269- << " ' applied to inappropriate type `"
270- << to_string (type) << " ' " << eom;
268+ error () << " attribute mode `" << gcc_attr_mode
269+ << " ' applied to inappropriate type `" << to_string (type) << " ' "
270+ << eom;
271271 throw 0 ;
272272 }
273273 }
0 commit comments