Skip to content

Commit 78937f1

Browse files
author
Daniel Kroening
committed
expr2ct::convert_function now has variant with operands only
1 parent ba0ab4a commit 78937f1

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

src/ansi-c/expr2c.cpp

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,19 +1264,30 @@ std::string expr2ct::convert_function(
12641264
const exprt &src,
12651265
const std::string &name,
12661266
unsigned precedence)
1267+
{
1268+
return convert_function(src.operands(), name, precedence);
1269+
}
1270+
1271+
std::string expr2ct::convert_function(
1272+
const exprt::operandst &ops,
1273+
const std::string &name,
1274+
unsigned precedence)
12671275
{
12681276
std::string dest=name;
12691277
dest+='(';
1278+
bool first = true;
12701279

1271-
forall_operands(it, src)
1280+
for(const auto &op : ops)
12721281
{
12731282
unsigned p;
1274-
std::string op=convert_with_precedence(*it, p);
1283+
const std::string op_str=convert_with_precedence(op, p);
12751284

1276-
if(it!=src.operands().begin())
1285+
if(first)
1286+
first=false;
1287+
else
12771288
dest+=", ";
12781289

1279-
dest+=op;
1290+
dest+=op_str;
12801291
}
12811292

12821293
dest+=')';
@@ -3005,7 +3016,7 @@ std::string expr2ct::convert_code(
30053016
if(statement=="set_may" ||
30063017
statement=="set_must")
30073018
return
3008-
indent_str(indent)+convert_function(src, id2string(statement), 16)+";";
3019+
indent_str(indent)+convert_function(src.operands(), id2string(statement), 16)+";";
30093020

30103021
unsigned precedence;
30113022
return convert_norep(src, precedence);

src/ansi-c/expr2c_class.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,13 @@ class expr2ct
167167
unsigned precedence);
168168

169169
std::string convert_function(
170-
const exprt &src, const std::string &symbol,
170+
const exprt::operandst &ops,
171+
const std::string &symbol,
172+
unsigned precedence);
173+
174+
std::string convert_function(
175+
const exprt &src,
176+
const std::string &symbol,
171177
unsigned precedence);
172178

173179
std::string convert_complex(

0 commit comments

Comments
 (0)