Skip to content

Commit 3a87f5c

Browse files
authored
Merge pull request #811 from peterschrammel/bugfix/expr2java-boolean-tgs
Fix boolean to string conversion in expr2java bugfix (test-gen-support)
2 parents 8fd1118 + 396a530 commit 3a87f5c

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

src/java_bytecode/expr2java.cpp

+10-12
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,15 @@ std::string expr2javat::convert_constant(
195195
const constant_exprt &src,
196196
unsigned &precedence)
197197
{
198-
if(src.type().id()==ID_bool)
198+
if(src.type().id()==ID_c_bool)
199+
{
200+
if(!src.is_zero())
201+
return "true";
202+
else
203+
return "false";
204+
}
205+
else if(src.type().id()==ID_bool)
199206
{
200-
// Java has built-in Boolean constants, in contrast to C
201207
if(src.is_true())
202208
return "true";
203209
else if(src.is_false())
@@ -482,7 +488,6 @@ std::string expr2javat::convert(
482488
const exprt &src,
483489
unsigned &precedence)
484490
{
485-
const typet &type=ns.follow(src.type());
486491
if(src.id()=="java-this")
487492
return convert_java_this(src, precedence=15);
488493
if(src.id()==ID_java_instanceof)
@@ -494,8 +499,6 @@ std::string expr2javat::convert(
494499
else if(src.id()==ID_side_effect &&
495500
src.get(ID_statement)==ID_throw)
496501
return convert_function(src, "throw", precedence=16);
497-
else if(src.is_constant() && to_constant_expr(src).get_value()==ID_nullptr)
498-
return "nullptr";
499502
else if(src.id()==ID_unassigned)
500503
return "?";
501504
else if(src.id()=="pod_constructor")
@@ -510,13 +513,8 @@ std::string expr2javat::convert(
510513
}
511514
else if(src.id()==ID_java_string_literal)
512515
return '"'+MetaString(src.get_string(ID_value))+'"';
513-
else if(src.id()==ID_constant && (type.id()==ID_bool || type.id()==ID_c_bool))
514-
{
515-
if(src.is_true())
516-
return "true";
517-
else
518-
return "false";
519-
}
516+
else if(src.id()==ID_constant)
517+
return convert_constant(to_constant_expr(src), precedence=16);
520518
else
521519
return expr2ct::convert(src, precedence);
522520
}

0 commit comments

Comments
 (0)