@@ -102,29 +102,23 @@ bool check_c_implicit_typecast(
102
102
103
103
if (src_type_id==ID_natural)
104
104
{
105
- if (dest_type.id ()==ID_bool ||
106
- dest_type.id ()==ID_c_bool ||
107
- dest_type.id ()==ID_integer ||
108
- dest_type.id ()==ID_real ||
109
- dest_type.id ()==ID_complex ||
110
- dest_type.id ()==ID_unsignedbv ||
111
- dest_type.id ()==ID_signedbv ||
112
- dest_type.id ()==ID_floatbv ||
113
- dest_type.id ()==ID_complex)
105
+ if (
106
+ dest_type.id () == ID_bool || dest_type.id () == ID_c_bool ||
107
+ dest_type.id () == ID_integer || dest_type.id () == ID_rational ||
108
+ dest_type.id () == ID_real || dest_type.id () == ID_complex ||
109
+ dest_type.id () == ID_unsignedbv || dest_type.id () == ID_signedbv ||
110
+ dest_type.id () == ID_floatbv || dest_type.id () == ID_complex)
114
111
return false ;
115
112
}
116
113
else if (src_type_id==ID_integer)
117
114
{
118
- if (dest_type.id ()==ID_bool ||
119
- dest_type.id ()==ID_c_bool ||
120
- dest_type.id ()==ID_real ||
121
- dest_type.id ()==ID_complex ||
122
- dest_type.id ()==ID_unsignedbv ||
123
- dest_type.id ()==ID_signedbv ||
124
- dest_type.id ()==ID_floatbv ||
125
- dest_type.id ()==ID_fixedbv ||
126
- dest_type.id ()==ID_pointer ||
127
- dest_type.id ()==ID_complex)
115
+ if (
116
+ dest_type.id () == ID_bool || dest_type.id () == ID_c_bool ||
117
+ dest_type.id () == ID_rational || dest_type.id () == ID_real ||
118
+ dest_type.id () == ID_complex || dest_type.id () == ID_unsignedbv ||
119
+ dest_type.id () == ID_signedbv || dest_type.id () == ID_floatbv ||
120
+ dest_type.id () == ID_fixedbv || dest_type.id () == ID_pointer ||
121
+ dest_type.id () == ID_complex)
128
122
return false ;
129
123
}
130
124
else if (src_type_id==ID_real)
@@ -139,12 +133,11 @@ bool check_c_implicit_typecast(
139
133
}
140
134
else if (src_type_id==ID_rational)
141
135
{
142
- if (dest_type.id ()==ID_bool ||
143
- dest_type.id ()==ID_c_bool ||
144
- dest_type.id ()==ID_complex ||
145
- dest_type.id ()==ID_floatbv ||
146
- dest_type.id ()==ID_fixedbv ||
147
- dest_type.id ()==ID_complex)
136
+ if (
137
+ dest_type.id () == ID_bool || dest_type.id () == ID_c_bool ||
138
+ dest_type.id () == ID_real || dest_type.id () == ID_complex ||
139
+ dest_type.id () == ID_floatbv || dest_type.id () == ID_fixedbv ||
140
+ dest_type.id () == ID_complex)
148
141
return false ;
149
142
}
150
143
else if (src_type_id==ID_bool)
@@ -415,6 +408,8 @@ c_typecastt::c_typet c_typecastt::get_c_type(
415
408
}
416
409
else if (type.id () == ID_integer)
417
410
return INTEGER;
411
+ else if (type.id () == ID_natural)
412
+ return NATURAL;
418
413
419
414
return OTHER;
420
415
}
@@ -454,6 +449,9 @@ void c_typecastt::implicit_typecast_arithmetic(
454
449
case RATIONAL: new_type=rational_typet (); break ;
455
450
case REAL: new_type=real_typet (); break ;
456
451
case INTEGER: new_type=integer_typet (); break ;
452
+ case NATURAL:
453
+ new_type = natural_typet ();
454
+ break ;
457
455
case COMPLEX:
458
456
case OTHER:
459
457
case VOIDPTR:
0 commit comments