Skip to content

Commit 7722195

Browse files
author
Daniel Kroening
committed
2 parents 376fd21 + 32be07f commit 7722195

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

src/ansi-c/expr2c.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ std::string expr2ct::convert_rec(
238238
{
239239
return q+"_Bool"+d;
240240
}
241+
else if(src.id()==ID_string)
242+
{
243+
return q+"__CPROVER_string"+d;
244+
}
241245
else if(src.id()==ID_natural ||
242246
src.id()==ID_integer ||
243247
src.id()==ID_rational)

src/linking/zero_initializer.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,10 @@ exprt zero_initializert::zero_initializer_rec(
267267

268268
return result;
269269
}
270+
else if(type_id==ID_string)
271+
{
272+
return constant_exprt(irep_idt(), type);
273+
}
270274
else
271275
{
272276
err_location(source_location);

src/util/pointer_offset_size.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,10 @@ mp_integer pointer_offset_bits(
222222
{
223223
return 0;
224224
}
225+
else if(type.id()==ID_string)
226+
{
227+
return config.ansi_c.int_width;
228+
}
225229
else
226230
return mp_integer(-1);
227231
}
@@ -479,6 +483,11 @@ exprt size_of_expr(
479483
{
480484
return gen_zero(signedbv_typet(config.ansi_c.pointer_width));
481485
}
486+
else if(type.id()==ID_string)
487+
{
488+
return from_integer(
489+
config.ansi_c.int_width, signedbv_typet(config.ansi_c.pointer_width));
490+
}
482491
else
483492
return nil_exprt();
484493
}

0 commit comments

Comments
 (0)