Skip to content

Commit f9b3690

Browse files
Fix C enum XML output
bvrep2integer must be used.
1 parent b64fd46 commit f9b3690

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

src/goto-programs/xml_expr.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,16 +179,13 @@ xmlt xml(const exprt &expr, const namespacet &ns)
179179
const auto width =
180180
to_bitvector_type(to_c_enum_type(type).subtype()).get_width();
181181

182+
const auto integer_value = bvrep2integer(value, width, false);
182183
result.name = "integer";
183-
result.set_attribute(
184-
"binary",
185-
integer2binary(numeric_cast_v<mp_integer>(constant_expr), width));
184+
result.set_attribute("binary", integer2binary(integer_value, width));
186185
result.set_attribute("width", width);
187186
result.set_attribute("c_type", "enum");
188187

189-
mp_integer i;
190-
if(!to_integer(constant_expr, i))
191-
result.data = integer2string(i);
188+
result.data = integer2string(integer_value);
192189
}
193190
else if(type.id() == ID_c_enum_tag)
194191
{

0 commit comments

Comments
 (0)