@@ -56,7 +56,8 @@ class ai_domain_baset
56
56
// no states
57
57
virtual void make_bottom ()=0;
58
58
59
- // all states
59
+ // all states -- the analysis doesn't use this,
60
+ // and domains may refuse to implement it.
60
61
virtual void make_top ()=0;
61
62
62
63
// a reasonable entry-point state
@@ -267,7 +268,7 @@ class ait:public ai_baset
267
268
return it->second ;
268
269
}
269
270
270
- virtual void clear ()
271
+ virtual void clear () override
271
272
{
272
273
state_map.clear ();
273
274
ai_baset::clear ();
@@ -278,33 +279,33 @@ class ait:public ai_baset
278
279
state_mapt state_map;
279
280
280
281
// this one creates states, if need be
281
- virtual statet &get_state (locationt l)
282
+ virtual statet &get_state (locationt l) override
282
283
{
283
284
return state_map[l]; // calls default constructor
284
285
}
285
286
286
287
// this one just finds states
287
- virtual const statet &find_state (locationt l) const
288
+ virtual const statet &find_state (locationt l) const override
288
289
{
289
290
typename state_mapt::const_iterator it=state_map.find (l);
290
291
if (it==state_map.end ()) throw " failed to find state" ;
291
292
return it->second ;
292
293
}
293
294
294
- virtual bool merge (const statet &src, locationt from, locationt to)
295
+ virtual bool merge (const statet &src, locationt from, locationt to) override
295
296
{
296
297
statet &dest=get_state (to);
297
298
return static_cast <domainT &>(dest).merge (static_cast <const domainT &>(src), from, to);
298
299
}
299
300
300
- virtual statet *make_temporary_state (const statet &s)
301
+ virtual statet *make_temporary_state (const statet &s) override
301
302
{
302
303
return new domainT (static_cast <const domainT &>(s));
303
304
}
304
305
305
306
virtual void fixedpoint (
306
307
const goto_functionst &goto_functions,
307
- const namespacet &ns)
308
+ const namespacet &ns) override
308
309
{
309
310
sequential_fixedpoint (goto_functions, ns);
310
311
}
@@ -318,7 +319,7 @@ class ait:public ai_baset
318
319
const statet &src,
319
320
goto_programt::const_targett from,
320
321
goto_programt::const_targett to,
321
- const namespacet &ns)
322
+ const namespacet &ns) override
322
323
{
323
324
throw " not implemented" ;
324
325
}
@@ -339,7 +340,7 @@ class concurrency_aware_ait:public ait<domainT>
339
340
const statet &src,
340
341
goto_programt::const_targett from,
341
342
goto_programt::const_targett to,
342
- const namespacet &ns)
343
+ const namespacet &ns) override
343
344
{
344
345
statet &dest=this ->get_state (to);
345
346
return static_cast <domainT &>(dest).merge_shared (static_cast <const domainT &>(src), from, to, ns);
@@ -348,7 +349,7 @@ class concurrency_aware_ait:public ait<domainT>
348
349
protected:
349
350
virtual void fixedpoint (
350
351
const goto_functionst &goto_functions,
351
- const namespacet &ns)
352
+ const namespacet &ns) override
352
353
{
353
354
this ->concurrent_fixedpoint (goto_functions, ns);
354
355
}
0 commit comments