Skip to content

Commit 0be1e87

Browse files
committed
find_symbols kindt: clarify enum entries
"F_BOTH" is not a good fit when there are three (and not two) other entries. While at it, also add support to selectively choose current or next expression symbols.
1 parent 28963d5 commit 0be1e87

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/util/find_symbols.cpp

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,15 @@ Author: Daniel Kroening, [email protected]
1313
#include "range.h"
1414
#include "std_expr.h"
1515

16-
enum class kindt { F_TYPE, F_TYPE_NON_PTR, F_EXPR, F_BOTH };
16+
enum class kindt
17+
{
18+
F_TYPE,
19+
F_TYPE_NON_PTR,
20+
F_EXPR_CURRENT,
21+
F_EXPR_NEXT,
22+
F_EXPR_BOTH,
23+
F_ALL
24+
};
1725

1826
void find_symbols_or_nexts(const exprt &src, find_symbols_sett &dest)
1927
{
@@ -97,11 +105,19 @@ void find_symbols(kindt kind, const exprt &src, find_symbols_sett &dest)
97105

98106
find_symbols(kind, src.type(), dest);
99107

100-
if(kind==kindt::F_BOTH || kind==kindt::F_EXPR)
108+
if(
109+
kind == kindt::F_ALL || kind == kindt::F_EXPR_CURRENT ||
110+
kind == kindt::F_EXPR_BOTH)
101111
{
102112
if(src.id() == ID_symbol)
103113
dest.insert(to_symbol_expr(src).get_identifier());
104-
else if(src.id() == ID_next_symbol)
114+
}
115+
116+
if(
117+
kind == kindt::F_ALL || kind == kindt::F_EXPR_NEXT ||
118+
kind == kindt::F_EXPR_BOTH)
119+
{
120+
if(src.id() == ID_next_symbol)
105121
dest.insert(src.get(ID_identifier));
106122
}
107123

@@ -148,10 +164,6 @@ void find_symbols(kindt kind, const typet &src, find_symbols_sett &dest)
148164
for(const auto &p : code_type.parameters())
149165
{
150166
find_symbols(kind, p, dest);
151-
152-
// irep_idt identifier=it->get_identifier();
153-
// if(!identifier.empty() && (kind==F_TYPE || kind==F_BOTH))
154-
// dest.insert(identifier);
155167
}
156168
}
157169
else if(src.id()==ID_array)
@@ -199,10 +211,10 @@ void find_non_pointer_type_symbols(
199211

200212
void find_type_and_expr_symbols(const exprt &src, find_symbols_sett &dest)
201213
{
202-
find_symbols(kindt::F_BOTH, src, dest);
214+
find_symbols(kindt::F_ALL, src, dest);
203215
}
204216

205217
void find_type_and_expr_symbols(const typet &src, find_symbols_sett &dest)
206218
{
207-
find_symbols(kindt::F_BOTH, src, dest);
219+
find_symbols(kindt::F_ALL, src, dest);
208220
}

0 commit comments

Comments
 (0)