@@ -102,29 +102,23 @@ bool check_c_implicit_typecast(
102102
103103 if (src_type_id==ID_natural)
104104 {
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)
114111 return false ;
115112 }
116113 else if (src_type_id==ID_integer)
117114 {
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)
128122 return false ;
129123 }
130124 else if (src_type_id==ID_real)
@@ -139,12 +133,11 @@ bool check_c_implicit_typecast(
139133 }
140134 else if (src_type_id==ID_rational)
141135 {
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)
148141 return false ;
149142 }
150143 else if (src_type_id==ID_bool)
@@ -415,6 +408,8 @@ c_typecastt::c_typet c_typecastt::get_c_type(
415408 }
416409 else if (type.id () == ID_integer)
417410 return INTEGER;
411+ else if (type.id () == ID_natural)
412+ return NATURAL;
418413
419414 return OTHER;
420415}
@@ -454,6 +449,9 @@ void c_typecastt::implicit_typecast_arithmetic(
454449 case RATIONAL: new_type=rational_typet (); break ;
455450 case REAL: new_type=real_typet (); break ;
456451 case INTEGER: new_type=integer_typet (); break ;
452+ case NATURAL:
453+ new_type = natural_typet ();
454+ break ;
457455 case COMPLEX:
458456 case OTHER:
459457 case VOIDPTR:
0 commit comments