Skip to content

Commit 30b4af8

Browse files
authored
Merge pull request #5766 from tautschnig/forall-objects
Remove {f,F}orall_objects
2 parents d3af469 + 48bbb5e commit 30b4af8

File tree

2 files changed

+72
-68
lines changed

2 files changed

+72
-68
lines changed

.clang-format

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ ForEachMacros: [
3838
'Forall_goto_functions',
3939
'forall_goto_program_instructions',
4040
'Forall_goto_program_instructions',
41-
'forall_objects',
42-
'Forall_objects',
4341
'forall_valid_objects',
4442
'Forall_valid_objects',
4543
'forall_literals',

src/pointer-analysis/value_set_fi.cpp

Lines changed: 72 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,6 @@ numberingt<irep_idt> value_set_fit::function_numbering;
3232

3333
static const char *alloc_adapter_prefix="alloc_adaptor::";
3434

35-
#define forall_objects(it, map) \
36-
for(object_map_dt::const_iterator it = (map).begin(); \
37-
it!=(map).end(); \
38-
(it)++)
39-
40-
#define Forall_objects(it, map) \
41-
for(object_map_dt::iterator it = (map).begin(); \
42-
it!=(map).end(); \
43-
(it)++)
44-
4535
void value_set_fit::output(
4636
const namespacet &ns,
4737
std::ostream &out) const
@@ -81,7 +71,10 @@ void value_set_fit::output(
8171

8272
std::size_t width=0;
8373

84-
forall_objects(o_it, object_map.read())
74+
const auto &entries = object_map.read();
75+
for(object_map_dt::const_iterator o_it = entries.begin();
76+
o_it != entries.end();
77+
++o_it)
8578
{
8679
const exprt &o=object_numbering[o_it->first];
8780

@@ -124,7 +117,7 @@ void value_set_fit::output(
124117
object_map_dt::const_iterator next(o_it);
125118
next++;
126119

127-
if(next!=object_map.read().end())
120+
if(next != entries.end())
128121
{
129122
out << ", ";
130123
if(width>=40)
@@ -168,9 +161,9 @@ void value_set_fit::flatten_rec(
168161

169162
seen.insert(identifier + e.suffix);
170163

171-
forall_objects(it, e.object_map.read())
164+
for(const auto &object_entry : e.object_map.read())
172165
{
173-
const exprt &o=object_numbering[it->first];
166+
const exprt &o = object_numbering[object_entry.first];
174167

175168
if(o.type().id()=="#REF#")
176169
{
@@ -196,26 +189,26 @@ void value_set_fit::flatten_rec(
196189
t_it!=temp.write().end();
197190
t_it++)
198191
{
199-
if(t_it->second && it->second)
192+
if(t_it->second && object_entry.second)
200193
{
201-
*t_it->second += *it->second;
194+
*t_it->second += *object_entry.second;
202195
}
203196
else
204197
t_it->second.reset();
205198
}
206199

207-
forall_objects(oit, temp.read())
208-
insert(dest, *oit);
200+
for(const auto &object_entry : temp.read())
201+
insert(dest, object_entry);
209202
}
210203
}
211204
else
212-
insert(dest, *it);
205+
insert(dest, object_entry);
213206
}
214207

215208
if(generalize_index) // this means we had recursive symbols in there
216209
{
217-
Forall_objects(it, dest.write())
218-
it->second.reset();
210+
for(auto &object_entry : dest.write())
211+
object_entry.second.reset();
219212
}
220213

221214
seen.erase(identifier + e.suffix);
@@ -284,9 +277,9 @@ bool value_set_fit::make_union(object_mapt &dest, const object_mapt &src) const
284277
{
285278
bool result=false;
286279

287-
forall_objects(it, src.read())
280+
for(const auto &object_entry : src.read())
288281
{
289-
if(insert(dest, *it))
282+
if(insert(dest, object_entry))
290283
result=true;
291284
}
292285

@@ -301,9 +294,9 @@ value_set_fit::get_value_set(const exprt &expr, const namespacet &ns) const
301294

302295
object_mapt flat_map;
303296

304-
forall_objects(it, object_map.read())
297+
for(const auto &object_entry : object_map.read())
305298
{
306-
const exprt &object=object_numbering[it->first];
299+
const exprt &object = object_numbering[object_entry.first];
307300
if(object.type().id()=="#REF#")
308301
{
309302
assert(object.id()==ID_symbol);
@@ -320,9 +313,9 @@ value_set_fit::get_value_set(const exprt &expr, const namespacet &ns) const
320313
t_it!=temp.write().end();
321314
t_it++)
322315
{
323-
if(t_it->second && it->second)
316+
if(t_it->second && object_entry.second)
324317
{
325-
*t_it->second += *it->second;
318+
*t_it->second += *object_entry.second;
326319
}
327320
else
328321
t_it->second.reset();
@@ -332,12 +325,12 @@ value_set_fit::get_value_set(const exprt &expr, const namespacet &ns) const
332325
}
333326
}
334327
else
335-
flat_map.write()[it->first]=it->second;
328+
flat_map.write()[object_entry.first] = object_entry.second;
336329
}
337330

338331
std::vector<exprt> result;
339-
forall_objects(fit, flat_map.read())
340-
result.push_back(to_expr(*fit));
332+
for(const auto &object_entry : flat_map.read())
333+
result.push_back(to_expr(object_entry));
341334

342335
#if 0
343336
// Sanity check!
@@ -388,9 +381,16 @@ void value_set_fit::get_value_set_rec(
388381

389382
if(fi!=values.end())
390383
{
391-
forall_objects(it, fi->second.object_map.read())
392-
get_value_set_rec(object_numbering[it->first], dest, suffix,
393-
original_type, ns, recursion_set);
384+
for(const auto &object_entry : fi->second.object_map.read())
385+
{
386+
get_value_set_rec(
387+
object_numbering[object_entry.first],
388+
dest,
389+
suffix,
390+
original_type,
391+
ns,
392+
recursion_set);
393+
}
394394
return;
395395
}
396396
else
@@ -502,9 +502,9 @@ void value_set_fit::get_value_set_rec(
502502

503503
if(object_map.begin()!=object_map.end())
504504
{
505-
forall_objects(it1, object_map)
505+
for(const auto &object_entry : object_map)
506506
{
507-
const exprt &object=object_numbering[it1->first];
507+
const exprt &object = object_numbering[object_entry.first];
508508
get_value_set_rec(object, dest, suffix,
509509
original_type, ns, recursion_set);
510510
}
@@ -560,9 +560,9 @@ void value_set_fit::get_value_set_rec(
560560
get_value_set_rec(*ptr_operand, pointer_expr_set, "",
561561
ptr_operand->type(), ns, recursion_set);
562562

563-
forall_objects(it, pointer_expr_set.read())
563+
for(const auto &object_entry : pointer_expr_set.read())
564564
{
565-
offsett offset = it->second;
565+
offsett offset = object_entry.second;
566566

567567
if(offset_is_zero(offset) && expr.operands().size() == 2)
568568
{
@@ -586,7 +586,7 @@ void value_set_fit::get_value_set_rec(
586586
else
587587
offset.reset();
588588

589-
insert(dest, it->first, offset);
589+
insert(dest, object_entry.first, offset);
590590
}
591591

592592
return;
@@ -699,9 +699,9 @@ void value_set_fit::get_reference_set(
699699
object_mapt object_map;
700700
get_reference_set_sharing(expr, object_map, ns);
701701

702-
forall_objects(it, object_map.read())
702+
for(const auto &object_entry : object_map.read())
703703
{
704-
const exprt &object = object_numbering[it->first];
704+
const exprt &object = object_numbering[object_entry.first];
705705

706706
if(object.type().id() == "#REF#")
707707
{
@@ -722,9 +722,9 @@ void value_set_fit::get_reference_set(
722722
t_it!=omt.write().end();
723723
t_it++)
724724
{
725-
if(t_it->second && it->second)
725+
if(t_it->second && object_entry.second)
726726
{
727-
*t_it->second += *it->second;
727+
*t_it->second += *object_entry.second;
728728
}
729729
else
730730
t_it->second.reset();
@@ -735,7 +735,7 @@ void value_set_fit::get_reference_set(
735735
}
736736
}
737737
else
738-
dest.insert(to_expr(*it));
738+
dest.insert(to_expr(object_entry));
739739
}
740740
}
741741

@@ -747,8 +747,8 @@ void value_set_fit::get_reference_set_sharing(
747747
object_mapt object_map;
748748
get_reference_set_sharing(expr, object_map, ns);
749749

750-
forall_objects(it, object_map.read())
751-
dest.insert(to_expr(*it));
750+
for(const auto &object_entry : object_map.read())
751+
dest.insert(to_expr(object_entry));
752752
}
753753

754754
void value_set_fit::get_reference_set_sharing_rec(
@@ -766,8 +766,11 @@ void value_set_fit::get_reference_set_sharing_rec(
766766
valuest::const_iterator fi = values.find(expr.get(ID_identifier));
767767
if(fi!=values.end())
768768
{
769-
forall_objects(it, fi->second.object_map.read())
770-
get_reference_set_sharing_rec(object_numbering[it->first], dest, ns);
769+
for(const auto &object_entry : fi->second.object_map.read())
770+
{
771+
get_reference_set_sharing_rec(
772+
object_numbering[object_entry.first], dest, ns);
773+
}
771774
return;
772775
}
773776
}
@@ -796,9 +799,9 @@ void value_set_fit::get_reference_set_sharing_rec(
796799
recset);
797800

798801
// REF's need to be dereferenced manually!
799-
forall_objects(it, temp.read())
802+
for(const auto &object_entry : temp.read())
800803
{
801-
const exprt &obj = object_numbering[it->first];
804+
const exprt &obj = object_numbering[object_entry.first];
802805
if(obj.type().id()=="#REF#")
803806
{
804807
const irep_idt &ident = obj.get(ID_identifier);
@@ -813,22 +816,22 @@ void value_set_fit::get_reference_set_sharing_rec(
813816
t_it!=t2.write().end();
814817
t_it++)
815818
{
816-
if(t_it->second && it->second)
819+
if(t_it->second && object_entry.second)
817820
{
818-
*t_it->second += *it->second;
821+
*t_it->second += *object_entry.second;
819822
}
820823
else
821824
t_it->second.reset();
822825
}
823826

824-
forall_objects(it2, t2.read())
825-
insert(dest, *it2);
827+
for(const auto &t2_object_entry : t2.read())
828+
insert(dest, t2_object_entry);
826829
}
827830
else
828831
insert(dest, exprt(ID_unknown, obj.type().subtype()));
829832
}
830833
else
831-
insert(dest, *it);
834+
insert(dest, object_entry);
832835
}
833836

834837
#if 0
@@ -854,9 +857,9 @@ void value_set_fit::get_reference_set_sharing_rec(
854857

855858
const object_map_dt &object_map=array_references.read();
856859

857-
forall_objects(a_it, object_map)
860+
for(const auto &object_entry : object_map)
858861
{
859-
const exprt &object=object_numbering[a_it->first];
862+
const exprt &object = object_numbering[object_entry.first];
860863

861864
if(object.id()==ID_unknown)
862865
insert(dest, exprt(ID_unknown, expr.type()));
@@ -873,7 +876,7 @@ void value_set_fit::get_reference_set_sharing_rec(
873876
else
874877
casted_index = index_expr;
875878

876-
offsett o = a_it->second;
879+
offsett o = object_entry.second;
877880
const auto i = numeric_cast<mp_integer>(offset);
878881

879882
if(offset.is_zero())
@@ -899,9 +902,9 @@ void value_set_fit::get_reference_set_sharing_rec(
899902
object_mapt struct_references;
900903
get_reference_set_sharing(struct_op, struct_references, ns);
901904

902-
forall_objects(it, struct_references.read())
905+
for(const auto &object_entry : struct_references.read())
903906
{
904-
const exprt &object=object_numbering[it->first];
907+
const exprt &object = object_numbering[object_entry.first];
905908
const typet &obj_type = object.type();
906909

907910
if(object.id()==ID_unknown)
@@ -917,7 +920,7 @@ void value_set_fit::get_reference_set_sharing_rec(
917920
}
918921
else
919922
{
920-
offsett o = it->second;
923+
offsett o = object_entry.second;
921924

922925
member_exprt member_expr(object, component_name, expr.type());
923926

@@ -1127,10 +1130,13 @@ void value_set_fit::assign_rec(
11271130
{
11281131
recursion_set.insert(ident);
11291132

1130-
forall_objects(it, temp.read())
1131-
if(object_numbering[it->first].id()!=ID_unknown)
1132-
assign_rec(object_numbering[it->first], values_rhs,
1133-
suffix, ns, recursion_set);
1133+
for(const auto &object_entry : temp.read())
1134+
{
1135+
const exprt &object = object_numbering[object_entry.first];
1136+
1137+
if(object.id() != ID_unknown)
1138+
assign_rec(object, values_rhs, suffix, ns, recursion_set);
1139+
}
11341140

11351141
recursion_set.erase(ident);
11361142
}
@@ -1172,9 +1178,9 @@ void value_set_fit::assign_rec(
11721178
object_mapt reference_set;
11731179
get_reference_set_sharing(lhs, reference_set, ns);
11741180

1175-
forall_objects(it, reference_set.read())
1181+
for(const auto &object_entry : reference_set.read())
11761182
{
1177-
const exprt &object=object_numbering[it->first];
1183+
const exprt &object = object_numbering[object_entry.first];
11781184

11791185
if(object.id()!=ID_unknown)
11801186
assign_rec(object, values_rhs, suffix, ns, recursion_set);

0 commit comments

Comments
 (0)