Closed michael-schwarz closed 3 years ago
For the following input
int main (int argc, char* argv[]) { signed char f2 = 7; signed char l_1857 = ((0xFFBD4A17L && f2) | f2); }
CIL produces
int main(int argc , char **argv ) { signed char f2 ; signed char l_1857 ; { #line 5 f2 = (signed char)7; #line 6 l_1857 = (signed char )((f2 != (signed char)0) | (int )f2); #line 7 return (0); } }
The subexpression f2 != (signed char)0 in this has typ signed char, but the type should be int as for all comparisons in C.
f2 != (signed char)0
signed char
int
This causes an error inside in Goblint where we assume comparisons have the correct type as mandated by the standard. References https://github.com/goblint/analyzer/pull/175
Fixed in #36
For the following input
CIL produces
The subexpression
f2 != (signed char)0
in this has typsigned char
, but the type should beint
as for all comparisons in C.This causes an error inside in Goblint where we assume comparisons have the correct type as mandated by the standard. References https://github.com/goblint/analyzer/pull/175