File tree 2 files changed +12
-16
lines changed
regression/cbmc/ts18661_typedefs
2 files changed +12
-16
lines changed Original file line number Diff line number Diff line change
1
+ #if defined(__clang__ )
2
+ #elif defined(__GNUC__ )
3
+ #if __GNUC__ >= 7
4
+ #define HAS_FLOATN
5
+ #endif
6
+ #endif
7
+
8
+ #ifndef HAS_FLOATN
1
9
typedef float _Float32 ;
2
10
typedef double _Float32x ;
3
11
typedef double _Float64 ;
4
12
typedef long double _Float64x ;
5
13
typedef long double _Float128 ;
6
14
typedef long double _Float128x ;
15
+ #endif
7
16
8
17
int main (int argc , char * * argv ) {
9
18
}
Original file line number Diff line number Diff line change @@ -346,22 +346,9 @@ void ansi_c_convert_typet::write(typet &type)
346
346
gcc_float64_cnt+gcc_float64x_cnt+
347
347
gcc_float128_cnt+gcc_float128x_cnt>=2 )
348
348
{
349
- // Temporary workaround for our glibc versions that try to define TS 18661
350
- // types (for example, typedef float _Float32). This can be removed once
351
- // upgrade cbmc's GCC support to at least 7.0 (when glibc will expect us
352
- // to provide these types natively), or disable parsing them ourselves
353
- // when our preprocessor stage claims support <7.0.
354
- if (c_storage_spec.is_typedef )
355
- {
356
- warning ().source_location = source_location;
357
- warning () << " ignoring typedef for TS 18661 (_FloatNNx) type. If you need these, try using goto-cc instead." << eom;
358
- }
359
- else
360
- {
361
- error ().source_location =source_location;
362
- error () << " conflicting type modifiers" << eom;
363
- throw 0 ;
364
- }
349
+ error ().source_location =source_location;
350
+ error () << " conflicting type modifiers" << eom;
351
+ throw 0 ;
365
352
}
366
353
367
354
// _not_ the same as float, double, long double
You can’t perform that action at this time.
0 commit comments