Skip to content

Commit e6267be

Browse files
author
Daniel Kroening
committed
expr2ct::convert_function now has variant with operands only
1 parent 1818f4a commit e6267be

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
@@ -1191,19 +1191,30 @@ std::string expr2ct::convert_function(
11911191
const exprt &src,
11921192
const std::string &name,
11931193
unsigned precedence)
1194+
{
1195+
return convert_function(src.operands(), name, precedence);
1196+
}
1197+
1198+
std::string expr2ct::convert_function(
1199+
const exprt::operandst &ops,
1200+
const std::string &name,
1201+
unsigned precedence)
11941202
{
11951203
std::string dest=name;
11961204
dest+='(';
1205+
bool first = true;
11971206

1198-
forall_operands(it, src)
1207+
for(const auto &op : ops)
11991208
{
12001209
unsigned p;
1201-
std::string op=convert_with_precedence(*it, p);
1210+
const std::string op_str=convert_with_precedence(op, p);
12021211

1203-
if(it!=src.operands().begin())
1212+
if(first)
1213+
first=false;
1214+
else
12041215
dest+=", ";
12051216

1206-
dest+=op;
1217+
dest+=op_str;
12071218
}
12081219

12091220
dest+=')';
@@ -2948,7 +2959,7 @@ std::string expr2ct::convert_code(
29482959
if(statement=="set_may" ||
29492960
statement=="set_must")
29502961
return
2951-
indent_str(indent)+convert_function(src, id2string(statement), 16)+";";
2962+
indent_str(indent)+convert_function(src.operands(), id2string(statement), 16)+";";
29522963

29532964
unsigned precedence;
29542965
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)