CBMC
location_update_visitor.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3  Module: A visitor class to update the last_written_locations of any visited
4  abstract_object with a given set of locations.
5 
6  Author: Jez Higgins
7 
8 \*******************************************************************/
9 #ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_LOCATION_UPDATE_VISITOR_H
10 #define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_LOCATION_UPDATE_VISITOR_H
11 
12 #include "abstract_object.h"
13 
16 {
17 public:
20  {
21  }
22 
24  visit(const abstract_object_pointert &element) const override
25  {
26  return element->write_location_context(location);
27  }
28 
29 private:
31 };
32 
35 {
36 public:
40  {
41  }
42 
44  visit(const abstract_object_pointert &element) const override
45  {
46  return element->merge_location_context(location);
47  }
48 
49 private:
51 };
52 
53 #endif // CPROVER_ANALYSES_VARIABLE_SENSITIVITY_LOCATION_UPDATE_VISITOR_H
abstract_object_pointert
sharing_ptrt< class abstract_objectt > abstract_object_pointert
Definition: abstract_object.h:69
abstract_objectt::locationt
goto_programt::const_targett locationt
Definition: abstract_object.h:220
abstract_object.h
location_update_visitort::location_update_visitort
location_update_visitort(const abstract_objectt::locationt &location)
Definition: location_update_visitor.h:18
merge_location_update_visitort::visit
abstract_object_pointert visit(const abstract_object_pointert &element) const override
Definition: location_update_visitor.h:44
merge_location_update_visitort::location
const abstract_objectt::locationt & location
Definition: location_update_visitor.h:50
abstract_objectt::abstract_object_visitort
Pure virtual interface required of a client that can apply a copy-on-write operation to a given abstr...
Definition: abstract_object.h:345
location_update_visitort
Definition: location_update_visitor.h:14
location_update_visitort::location
const abstract_objectt::locationt & location
Definition: location_update_visitor.h:30
location_update_visitort::visit
abstract_object_pointert visit(const abstract_object_pointert &element) const override
Definition: location_update_visitor.h:24
merge_location_update_visitort::merge_location_update_visitort
merge_location_update_visitort(const abstract_objectt::locationt &location)
Definition: location_update_visitor.h:37
merge_location_update_visitort
Definition: location_update_visitor.h:33