CBMC
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
type_size_mapping.h
Go to the documentation of this file.
1// Author: Diffblue Ltd.
2
5
6#ifndef CPROVER_SOLVERS_SMT2_INCREMENTAL_TYPE_SIZE_MAPPING_H
7#define CPROVER_SOLVERS_SMT2_INCREMENTAL_TYPE_SIZE_MAPPING_H
8
9#include <util/expr.h> // IWYU pragma: keep
10
11#include <solvers/smt2_incremental/ast/smt_terms.h> // IWYU pragma: keep
12#include <solvers/smt2_incremental/object_tracking.h> // IWYU pragma: keep
14#include <solvers/smt2_incremental/smt_object_size.h> // IWYU pragma: keep
15
16#include <unordered_map> // IWYU pragma: keep
17
18using type_size_mapt = std::unordered_map<typet, smt_termt, irep_hash>;
19
34 const exprt &expression,
35 const namespacet &ns,
37 const smt_object_mapt &object_map,
39 const smt_is_dynamic_objectt::make_applicationt &is_dynamic_object);
40
41#endif
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
Base class for all expressions.
Definition expr.h:56
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition namespace.h:91
Data structures and algorithms used by smt2_incremental_decision_proceduret to track data about the o...
std::unordered_map< exprt, decision_procedure_objectt, irep_hash > smt_object_mapt
Mapping from an object's base expression to the set of information about it which we track.
exprt object_size(const exprt &pointer)
void associate_pointer_sizes(const exprt &expression, const namespacet &ns, type_size_mapt &type_size_map, const smt_object_mapt &object_map, const smt_object_sizet::make_applicationt &object_size, const smt_is_dynamic_objectt::make_applicationt &is_dynamic_object)
This function populates the (pointer) type -> size map.
std::unordered_map< typet, smt_termt, irep_hash > type_size_mapt