Skip to content

Commit 5f2b883

Browse files
author
Daniel Kroening
committed
expr2ct::convert_function now has variant with operands only
1 parent e492d10 commit 5f2b883

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
@@ -1225,19 +1225,30 @@ std::string expr2ct::convert_function(
12251225
const exprt &src,
12261226
const std::string &name,
12271227
unsigned precedence)
1228+
{
1229+
return convert_function(src.operands(), name, precedence);
1230+
}
1231+
1232+
std::string expr2ct::convert_function(
1233+
const exprt::operandst &ops,
1234+
const std::string &name,
1235+
unsigned precedence)
12281236
{
12291237
std::string dest=name;
12301238
dest+='(';
1239+
bool first = true;
12311240

1232-
forall_operands(it, src)
1241+
for(const auto &op : ops)
12331242
{
12341243
unsigned p;
1235-
std::string op=convert_with_precedence(*it, p);
1244+
const std::string op_str=convert_with_precedence(op, p);
12361245

1237-
if(it!=src.operands().begin())
1246+
if(first)
1247+
first=false;
1248+
else
12381249
dest+=", ";
12391250

1240-
dest+=op;
1251+
dest+=op_str;
12411252
}
12421253

12431254
dest+=')';
@@ -2958,7 +2969,7 @@ std::string expr2ct::convert_code(
29582969
if(statement=="set_may" ||
29592970
statement=="set_must")
29602971
return
2961-
indent_str(indent)+convert_function(src, id2string(statement), 16)+";";
2972+
indent_str(indent)+convert_function(src.operands(), id2string(statement), 16)+";";
29622973

29632974
unsigned precedence;
29642975
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
@@ -169,7 +169,13 @@ class expr2ct
169169
unsigned precedence);
170170

171171
std::string convert_function(
172-
const exprt &src, const std::string &symbol,
172+
const exprt::operandst &ops,
173+
const std::string &symbol,
174+
unsigned precedence);
175+
176+
std::string convert_function(
177+
const exprt &src,
178+
const std::string &symbol,
173179
unsigned precedence);
174180

175181
std::string convert_complex(

0 commit comments

Comments
 (0)