CBMC
pointer_expr.h File Reference

API to expression classes for Pointers. More...

#include "bitvector_types.h"
#include "std_expr.h"
+ Include dependency graph for pointer_expr.h:

Go to the source code of this file.

Classes

class  pointer_typet
 The pointer type These are both 'bitvector_typet' (they have a width) and 'type_with_subtypet' (they have a subtype) More...
 
class  reference_typet
 The reference type. More...
 
class  object_descriptor_exprt
 Split an expression into a base object and a (byte) offset. More...
 
class  dynamic_object_exprt
 Representation of heap-allocated objects. More...
 
class  is_dynamic_object_exprt
 Evaluates to true if the operand is a pointer to a dynamic object. More...
 
class  pointer_in_range_exprt
 pointer_in_range(a, b, c) evaluates to true iff same_object(a, b, c) ∧ r_ok(a, offset(c)-offset(a)) ∧ a<=b ∧ b<=c Note that the last inequality is weak, i.e., b may be equal to c. More...
 
class  prophecy_pointer_in_range_exprt
 pointer_in_range (see pointer_in_range_exprt) with prophecy expressions to encode whether a pointer refers to a deallocated or out-of-scope object. More...
 
class  address_of_exprt
 Operator to return the address of an object. More...
 
class  object_address_exprt
 Operator to return the address of an object. More...
 
class  field_address_exprt
 Operator to return the address of a field relative to a base address. More...
 
class  element_address_exprt
 Operator to return the address of an array element relative to a base address. More...
 
class  dereference_exprt
 Operator to dereference a pointer. More...
 
class  null_pointer_exprt
 The null pointer constant. More...
 
class  r_or_w_ok_exprt
 A base class for a predicate that indicates that an address range is ok to read or write or both. More...
 
class  r_ok_exprt
 A predicate that indicates that an address range is ok to read. More...
 
class  w_ok_exprt
 A predicate that indicates that an address range is ok to write. More...
 
class  prophecy_r_or_w_ok_exprt
 A base class for a predicate that indicates that an address range is ok to read or write or both. More...
 
class  prophecy_r_ok_exprt
 A predicate that indicates that an address range is ok to read. More...
 
class  prophecy_w_ok_exprt
 A predicate that indicates that an address range is ok to write. More...
 
class  annotated_pointer_constant_exprt
 Pointer-typed bitvector constant annotated with the pointer expression that the bitvector is the numeric representation of. More...
 
class  pointer_offset_exprt
 The offset (in bytes) of a pointer relative to the object. More...
 
class  pointer_object_exprt
 A numerical identifier for the object a pointer points to. More...
 
class  object_size_exprt
 Expression for finding the size (in bytes) of the object a pointer points to. More...
 
class  is_cstring_exprt
 A predicate that indicates that a zero-terminated string starts at the given address. More...
 
class  cstrlen_exprt
 An expression, akin to ISO C's strlen, that denotes the length of a zero-terminated string that starts at the given address. More...
 
class  live_object_exprt
 A predicate that indicates that the object pointed to is live. More...
 
class  writeable_object_exprt
 A predicate that indicates that the object pointed to is writeable. More...
 
class  separate_exprt
 A predicate that indicates that the objects pointed to are distinct. More...
 

Functions

template<>
bool can_cast_type< pointer_typet > (const typet &type)
 Check whether a reference to a typet is a pointer_typet. More...
 
const pointer_typetto_pointer_type (const typet &type)
 Cast a typet to a pointer_typet. More...
 
pointer_typetto_pointer_type (typet &type)
 Cast a typet to a pointer_typet. More...
 
bool is_void_pointer (const typet &type)
 This method tests, if the given typet is a pointer of type void. More...
 
template<>
bool can_cast_type< reference_typet > (const typet &type)
 Check whether a reference to a typet is a reference_typet. More...
 
const reference_typetto_reference_type (const typet &type)
 Cast a typet to a reference_typet. More...
 
reference_typetto_reference_type (typet &type)
 Cast a typet to a reference_typet. More...
 
bool is_reference (const typet &type)
 Returns true if the type is a reference. More...
 
bool is_rvalue_reference (const typet &type)
 Returns if the type is an R value reference. More...
 
template<>
bool can_cast_expr< object_descriptor_exprt > (const exprt &base)
 
void validate_expr (const object_descriptor_exprt &value)
 
const object_descriptor_exprtto_object_descriptor_expr (const exprt &expr)
 Cast an exprt to an object_descriptor_exprt. More...
 
object_descriptor_exprtto_object_descriptor_expr (exprt &expr)
 Cast an exprt to an object_descriptor_exprt. More...
 
template<>
bool can_cast_expr< dynamic_object_exprt > (const exprt &base)
 
void validate_expr (const dynamic_object_exprt &value)
 
const dynamic_object_exprtto_dynamic_object_expr (const exprt &expr)
 Cast an exprt to a dynamic_object_exprt. More...
 
dynamic_object_exprtto_dynamic_object_expr (exprt &expr)
 Cast an exprt to a dynamic_object_exprt. More...
 
template<>
bool can_cast_expr< is_dynamic_object_exprt > (const exprt &base)
 
void validate_expr (const is_dynamic_object_exprt &value)
 
const is_dynamic_object_exprtto_is_dynamic_object_expr (const exprt &expr)
 
is_dynamic_object_exprtto_is_dynamic_object_expr (exprt &expr)
 
template<>
bool can_cast_expr< pointer_in_range_exprt > (const exprt &base)
 
void validate_expr (const pointer_in_range_exprt &value)
 
const pointer_in_range_exprtto_pointer_in_range_expr (const exprt &expr)
 
pointer_in_range_exprtto_pointer_in_range_expr (exprt &expr)
 
template<>
bool can_cast_expr< prophecy_pointer_in_range_exprt > (const exprt &base)
 
void validate_expr (const prophecy_pointer_in_range_exprt &value)
 
const prophecy_pointer_in_range_exprtto_prophecy_pointer_in_range_expr (const exprt &expr)
 
prophecy_pointer_in_range_exprtto_prophecy_pointer_in_range_expr (exprt &expr)
 
template<>
bool can_cast_expr< address_of_exprt > (const exprt &base)
 
void validate_expr (const address_of_exprt &value)
 
const address_of_exprtto_address_of_expr (const exprt &expr)
 Cast an exprt to an address_of_exprt. More...
 
address_of_exprtto_address_of_expr (exprt &expr)
 Cast an exprt to an address_of_exprt. More...
 
template<>
bool can_cast_expr< object_address_exprt > (const exprt &base)
 
void validate_expr (const object_address_exprt &value)
 
const object_address_exprtto_object_address_expr (const exprt &expr)
 Cast an exprt to an object_address_exprt. More...
 
object_address_exprtto_object_address_expr (exprt &expr)
 Cast an exprt to an object_address_exprt. More...
 
template<>
bool can_cast_expr< field_address_exprt > (const exprt &expr)
 
void validate_expr (const field_address_exprt &value)
 
const field_address_exprtto_field_address_expr (const exprt &expr)
 Cast an exprt to an field_address_exprt. More...
 
field_address_exprtto_field_address_expr (exprt &expr)
 Cast an exprt to an field_address_exprt. More...
 
template<>
bool can_cast_expr< element_address_exprt > (const exprt &expr)
 
void validate_expr (const element_address_exprt &value)
 
const element_address_exprtto_element_address_expr (const exprt &expr)
 Cast an exprt to an element_address_exprt. More...
 
element_address_exprtto_element_address_expr (exprt &expr)
 Cast an exprt to an element_address_exprt. More...
 
template<>
bool can_cast_expr< dereference_exprt > (const exprt &base)
 
void validate_expr (const dereference_exprt &value)
 
const dereference_exprtto_dereference_expr (const exprt &expr)
 Cast an exprt to a dereference_exprt. More...
 
dereference_exprtto_dereference_expr (exprt &expr)
 Cast an exprt to a dereference_exprt. More...
 
template<>
bool can_cast_expr< r_or_w_ok_exprt > (const exprt &base)
 
void validate_expr (const r_or_w_ok_exprt &value)
 
const r_or_w_ok_exprtto_r_or_w_ok_expr (const exprt &expr)
 
template<>
bool can_cast_expr< r_ok_exprt > (const exprt &base)
 
void validate_expr (const r_ok_exprt &value)
 
const r_ok_exprtto_r_ok_expr (const exprt &expr)
 
template<>
bool can_cast_expr< w_ok_exprt > (const exprt &base)
 
void validate_expr (const w_ok_exprt &value)
 
const w_ok_exprtto_w_ok_expr (const exprt &expr)
 
template<>
bool can_cast_expr< prophecy_r_or_w_ok_exprt > (const exprt &base)
 
void validate_expr (const prophecy_r_or_w_ok_exprt &value)
 
const prophecy_r_or_w_ok_exprtto_prophecy_r_or_w_ok_expr (const exprt &expr)
 
template<>
bool can_cast_expr< prophecy_r_ok_exprt > (const exprt &base)
 
void validate_expr (const prophecy_r_ok_exprt &value)
 
const prophecy_r_ok_exprtto_prophecy_r_ok_expr (const exprt &expr)
 
template<>
bool can_cast_expr< prophecy_w_ok_exprt > (const exprt &base)
 
void validate_expr (const prophecy_w_ok_exprt &value)
 
const prophecy_w_ok_exprtto_prophecy_w_ok_expr (const exprt &expr)
 
template<>
bool can_cast_expr< annotated_pointer_constant_exprt > (const exprt &base)
 
void validate_expr (const annotated_pointer_constant_exprt &value)
 
const annotated_pointer_constant_exprtto_annotated_pointer_constant_expr (const exprt &expr)
 Cast an exprt to an annotated_pointer_constant_exprt. More...
 
annotated_pointer_constant_exprtto_annotated_pointer_constant_expr (exprt &expr)
 Cast an exprt to an annotated_pointer_constant_exprt. More...
 
template<>
bool can_cast_expr< pointer_offset_exprt > (const exprt &base)
 
void validate_expr (const pointer_offset_exprt &value)
 
const pointer_offset_exprtto_pointer_offset_expr (const exprt &expr)
 Cast an exprt to a pointer_offset_exprt. More...
 
pointer_offset_exprtto_pointer_offset_expr (exprt &expr)
 Cast an exprt to a pointer_offset_exprt. More...
 
template<>
bool can_cast_expr< pointer_object_exprt > (const exprt &base)
 
void validate_expr (const pointer_object_exprt &value)
 
const pointer_object_exprtto_pointer_object_expr (const exprt &expr)
 Cast an exprt to a pointer_object_exprt. More...
 
pointer_object_exprtto_pointer_object_expr (exprt &expr)
 Cast an exprt to a pointer_object_exprt. More...
 
const object_size_exprtto_object_size_expr (const exprt &expr)
 Cast an exprt to a object_size_exprt. More...
 
object_size_exprtto_object_size_expr (exprt &expr)
 Cast an exprt to a object_size_exprt. More...
 
template<>
bool can_cast_expr< object_size_exprt > (const exprt &base)
 
void validate_expr (const object_size_exprt &value)
 
template<>
bool can_cast_expr< is_cstring_exprt > (const exprt &base)
 
void validate_expr (const is_cstring_exprt &value)
 
const is_cstring_exprtto_is_cstring_expr (const exprt &expr)
 Cast an exprt to a is_cstring_exprt. More...
 
is_cstring_exprtto_is_cstring_expr (exprt &expr)
 Cast an exprt to a is_cstring_exprt. More...
 
template<>
bool can_cast_expr< cstrlen_exprt > (const exprt &base)
 
void validate_expr (const cstrlen_exprt &value)
 
const cstrlen_exprtto_cstrlen_expr (const exprt &expr)
 Cast an exprt to a cstrlen_exprt. More...
 
cstrlen_exprtto_cstrlen_expr (exprt &expr)
 Cast an exprt to a cstrlen_exprt. More...
 
template<>
bool can_cast_expr< live_object_exprt > (const exprt &base)
 
void validate_expr (const live_object_exprt &value)
 
const live_object_exprtto_live_object_expr (const exprt &expr)
 Cast an exprt to a live_object_exprt. More...
 
live_object_exprtto_live_object_expr (exprt &expr)
 Cast an exprt to a live_object_exprt. More...
 
template<>
bool can_cast_expr< writeable_object_exprt > (const exprt &base)
 
void validate_expr (const writeable_object_exprt &value)
 
const writeable_object_exprtto_writeable_object_expr (const exprt &expr)
 Cast an exprt to a writeable_object_exprt. More...
 
writeable_object_exprtto_writeable_object_expr (exprt &expr)
 Cast an exprt to a writeable_object_exprt. More...
 
template<>
bool can_cast_expr< separate_exprt > (const exprt &base)
 
void validate_expr (const separate_exprt &value)
 
const separate_exprtto_separate_expr (const exprt &expr)
 Cast an exprt to a separate_exprt. More...
 
separate_exprtto_separate_expr (exprt &expr)
 Cast an exprt to a separate_exprt. More...
 

Detailed Description

API to expression classes for Pointers.

Definition in file pointer_expr.h.

Function Documentation

◆ can_cast_expr< address_of_exprt >()

template<>
bool can_cast_expr< address_of_exprt > ( const exprt base)
inline

Definition at line 561 of file pointer_expr.h.

◆ can_cast_expr< annotated_pointer_constant_exprt >()

template<>
bool can_cast_expr< annotated_pointer_constant_exprt > ( const exprt base)
inline

Definition at line 1242 of file pointer_expr.h.

◆ can_cast_expr< cstrlen_exprt >()

template<>
bool can_cast_expr< cstrlen_exprt > ( const exprt base)
inline

Definition at line 1536 of file pointer_expr.h.

◆ can_cast_expr< dereference_exprt >()

template<>
bool can_cast_expr< dereference_exprt > ( const exprt base)
inline

Definition at line 874 of file pointer_expr.h.

◆ can_cast_expr< dynamic_object_exprt >()

template<>
bool can_cast_expr< dynamic_object_exprt > ( const exprt base)
inline

Definition at line 299 of file pointer_expr.h.

◆ can_cast_expr< element_address_exprt >()

template<>
bool can_cast_expr< element_address_exprt > ( const exprt expr)
inline

Definition at line 798 of file pointer_expr.h.

◆ can_cast_expr< field_address_exprt >()

template<>
bool can_cast_expr< field_address_exprt > ( const exprt expr)
inline

Definition at line 711 of file pointer_expr.h.

◆ can_cast_expr< is_cstring_exprt >()

template<>
bool can_cast_expr< is_cstring_exprt > ( const exprt base)
inline

Definition at line 1478 of file pointer_expr.h.

◆ can_cast_expr< is_dynamic_object_exprt >()

template<>
bool can_cast_expr< is_dynamic_object_exprt > ( const exprt base)
inline

Definition at line 354 of file pointer_expr.h.

◆ can_cast_expr< live_object_exprt >()

template<>
bool can_cast_expr< live_object_exprt > ( const exprt base)
inline

Definition at line 1592 of file pointer_expr.h.

◆ can_cast_expr< object_address_exprt >()

template<>
bool can_cast_expr< object_address_exprt > ( const exprt base)
inline

Definition at line 627 of file pointer_expr.h.

◆ can_cast_expr< object_descriptor_exprt >()

template<>
bool can_cast_expr< object_descriptor_exprt > ( const exprt base)
inline

Definition at line 235 of file pointer_expr.h.

◆ can_cast_expr< object_size_exprt >()

template<>
bool can_cast_expr< object_size_exprt > ( const exprt base)
inline

Definition at line 1441 of file pointer_expr.h.

◆ can_cast_expr< pointer_in_range_exprt >()

template<>
bool can_cast_expr< pointer_in_range_exprt > ( const exprt base)
inline

Definition at line 422 of file pointer_expr.h.

◆ can_cast_expr< pointer_object_exprt >()

template<>
bool can_cast_expr< pointer_object_exprt > ( const exprt base)
inline

Definition at line 1359 of file pointer_expr.h.

◆ can_cast_expr< pointer_offset_exprt >()

template<>
bool can_cast_expr< pointer_offset_exprt > ( const exprt base)
inline

Definition at line 1301 of file pointer_expr.h.

◆ can_cast_expr< prophecy_pointer_in_range_exprt >()

template<>
bool can_cast_expr< prophecy_pointer_in_range_exprt > ( const exprt base)
inline

Definition at line 505 of file pointer_expr.h.

◆ can_cast_expr< prophecy_r_ok_exprt >()

template<>
bool can_cast_expr< prophecy_r_ok_exprt > ( const exprt base)
inline

Definition at line 1134 of file pointer_expr.h.

◆ can_cast_expr< prophecy_r_or_w_ok_exprt >()

template<>
bool can_cast_expr< prophecy_r_or_w_ok_exprt > ( const exprt base)
inline

Definition at line 1083 of file pointer_expr.h.

◆ can_cast_expr< prophecy_w_ok_exprt >()

template<>
bool can_cast_expr< prophecy_w_ok_exprt > ( const exprt base)
inline

Definition at line 1182 of file pointer_expr.h.

◆ can_cast_expr< r_ok_exprt >()

template<>
bool can_cast_expr< r_ok_exprt > ( const exprt base)
inline

Definition at line 969 of file pointer_expr.h.

◆ can_cast_expr< r_or_w_ok_exprt >()

template<>
bool can_cast_expr< r_or_w_ok_exprt > ( const exprt base)
inline

Definition at line 939 of file pointer_expr.h.

◆ can_cast_expr< separate_exprt >()

template<>
bool can_cast_expr< separate_exprt > ( const exprt base)
inline

Definition at line 1702 of file pointer_expr.h.

◆ can_cast_expr< w_ok_exprt >()

template<>
bool can_cast_expr< w_ok_exprt > ( const exprt base)
inline

Definition at line 998 of file pointer_expr.h.

◆ can_cast_expr< writeable_object_exprt >()

template<>
bool can_cast_expr< writeable_object_exprt > ( const exprt base)
inline

Definition at line 1648 of file pointer_expr.h.

◆ can_cast_type< pointer_typet >()

template<>
bool can_cast_type< pointer_typet > ( const typet type)
inline

Check whether a reference to a typet is a pointer_typet.

Parameters
typeSource type.
Returns
True if type is a pointer_typet.

Definition at line 80 of file pointer_expr.h.

◆ can_cast_type< reference_typet >()

template<>
bool can_cast_type< reference_typet > ( const typet type)
inline

Check whether a reference to a typet is a reference_typet.

Parameters
typeSource type.
Returns
True if type is a reference_typet.

Definition at line 149 of file pointer_expr.h.

◆ is_reference()

bool is_reference ( const typet type)

Returns true if the type is a reference.

Definition at line 144 of file std_types.cpp.

◆ is_rvalue_reference()

bool is_rvalue_reference ( const typet type)

Returns if the type is an R value reference.

Definition at line 151 of file std_types.cpp.

◆ is_void_pointer()

bool is_void_pointer ( const typet type)
inline

This method tests, if the given typet is a pointer of type void.

Definition at line 110 of file pointer_expr.h.

◆ to_address_of_expr() [1/2]

const address_of_exprt& to_address_of_expr ( const exprt expr)
inline

Cast an exprt to an address_of_exprt.

expr must be known to be address_of_exprt.

Parameters
exprSource expression
Returns
Object of type address_of_exprt

Definition at line 577 of file pointer_expr.h.

◆ to_address_of_expr() [2/2]

address_of_exprt& to_address_of_expr ( exprt expr)
inline

Cast an exprt to an address_of_exprt.

expr must be known to be address_of_exprt.

Parameters
exprSource expression
Returns
Object of type address_of_exprt

Definition at line 586 of file pointer_expr.h.

◆ to_annotated_pointer_constant_expr() [1/2]

const annotated_pointer_constant_exprt& to_annotated_pointer_constant_expr ( const exprt expr)
inline

Cast an exprt to an annotated_pointer_constant_exprt.

expr must be known to be annotated_pointer_constant_exprt.

Parameters
exprSource expression
Returns
Object of type annotated_pointer_constant_exprt

Definition at line 1260 of file pointer_expr.h.

◆ to_annotated_pointer_constant_expr() [2/2]

annotated_pointer_constant_exprt& to_annotated_pointer_constant_expr ( exprt expr)
inline

Cast an exprt to an annotated_pointer_constant_exprt.

expr must be known to be annotated_pointer_constant_exprt.

Parameters
exprSource expression
Returns
Object of type annotated_pointer_constant_exprt

Definition at line 1271 of file pointer_expr.h.

◆ to_cstrlen_expr() [1/2]

const cstrlen_exprt& to_cstrlen_expr ( const exprt expr)
inline

Cast an exprt to a cstrlen_exprt.

expr must be known to be cstrlen_exprt.

Parameters
exprSource expression
Returns
Object of type cstrlen_exprt

Definition at line 1552 of file pointer_expr.h.

◆ to_cstrlen_expr() [2/2]

cstrlen_exprt& to_cstrlen_expr ( exprt expr)
inline

Cast an exprt to a cstrlen_exprt.

expr must be known to be cstrlen_exprt.

Parameters
exprSource expression
Returns
Object of type cstrlen_exprt

Definition at line 1561 of file pointer_expr.h.

◆ to_dereference_expr() [1/2]

const dereference_exprt& to_dereference_expr ( const exprt expr)
inline

Cast an exprt to a dereference_exprt.

expr must be known to be dereference_exprt.

Parameters
exprSource expression
Returns
Object of type dereference_exprt

Definition at line 890 of file pointer_expr.h.

◆ to_dereference_expr() [2/2]

dereference_exprt& to_dereference_expr ( exprt expr)
inline

Cast an exprt to a dereference_exprt.

expr must be known to be dereference_exprt.

Parameters
exprSource expression
Returns
Object of type dereference_exprt

Definition at line 899 of file pointer_expr.h.

◆ to_dynamic_object_expr() [1/2]

const dynamic_object_exprt& to_dynamic_object_expr ( const exprt expr)
inline

Cast an exprt to a dynamic_object_exprt.

expr must be known to be dynamic_object_exprt.

Parameters
exprSource expression
Returns
Object of type dynamic_object_exprt

Definition at line 315 of file pointer_expr.h.

◆ to_dynamic_object_expr() [2/2]

dynamic_object_exprt& to_dynamic_object_expr ( exprt expr)
inline

Cast an exprt to a dynamic_object_exprt.

expr must be known to be dynamic_object_exprt.

Parameters
exprSource expression
Returns
Object of type dynamic_object_exprt

Definition at line 325 of file pointer_expr.h.

◆ to_element_address_expr() [1/2]

const element_address_exprt& to_element_address_expr ( const exprt expr)
inline

Cast an exprt to an element_address_exprt.

expr must be known to be element_address_exprt.

Parameters
exprSource expression
Returns
Object of type element_address_exprt

Definition at line 814 of file pointer_expr.h.

◆ to_element_address_expr() [2/2]

element_address_exprt& to_element_address_expr ( exprt expr)
inline

Cast an exprt to an element_address_exprt.

expr must be known to be element_address_exprt.

Parameters
exprSource expression
Returns
Object of type element_address_exprt

Definition at line 824 of file pointer_expr.h.

◆ to_field_address_expr() [1/2]

const field_address_exprt& to_field_address_expr ( const exprt expr)
inline

Cast an exprt to an field_address_exprt.

expr must be known to be field_address_exprt.

Parameters
exprSource expression
Returns
Object of type field_address_exprt

Definition at line 727 of file pointer_expr.h.

◆ to_field_address_expr() [2/2]

field_address_exprt& to_field_address_expr ( exprt expr)
inline

Cast an exprt to an field_address_exprt.

expr must be known to be field_address_exprt.

Parameters
exprSource expression
Returns
Object of type field_address_exprt

Definition at line 737 of file pointer_expr.h.

◆ to_is_cstring_expr() [1/2]

const is_cstring_exprt& to_is_cstring_expr ( const exprt expr)
inline

Cast an exprt to a is_cstring_exprt.

expr must be known to be is_cstring_exprt.

Parameters
exprSource expression
Returns
Object of type is_cstring_exprt

Definition at line 1494 of file pointer_expr.h.

◆ to_is_cstring_expr() [2/2]

is_cstring_exprt& to_is_cstring_expr ( exprt expr)
inline

Cast an exprt to a is_cstring_exprt.

expr must be known to be is_cstring_exprt.

Parameters
exprSource expression
Returns
Object of type is_cstring_exprt

Definition at line 1503 of file pointer_expr.h.

◆ to_is_dynamic_object_expr() [1/2]

const is_dynamic_object_exprt& to_is_dynamic_object_expr ( const exprt expr)
inline

Definition at line 365 of file pointer_expr.h.

◆ to_is_dynamic_object_expr() [2/2]

is_dynamic_object_exprt& to_is_dynamic_object_expr ( exprt expr)
inline

Definition at line 375 of file pointer_expr.h.

◆ to_live_object_expr() [1/2]

const live_object_exprt& to_live_object_expr ( const exprt expr)
inline

Cast an exprt to a live_object_exprt.

expr must be known to be live_object_exprt.

Parameters
exprSource expression
Returns
Object of type live_object_exprt

Definition at line 1608 of file pointer_expr.h.

◆ to_live_object_expr() [2/2]

live_object_exprt& to_live_object_expr ( exprt expr)
inline

Cast an exprt to a live_object_exprt.

expr must be known to be live_object_exprt.

Parameters
exprSource expression
Returns
Object of type live_object_exprt

Definition at line 1617 of file pointer_expr.h.

◆ to_object_address_expr() [1/2]

const object_address_exprt& to_object_address_expr ( const exprt expr)
inline

Cast an exprt to an object_address_exprt.

expr must be known to be object_address_exprt.

Parameters
exprSource expression
Returns
Object of type object_address_exprt

Definition at line 643 of file pointer_expr.h.

◆ to_object_address_expr() [2/2]

object_address_exprt& to_object_address_expr ( exprt expr)
inline

Cast an exprt to an object_address_exprt.

expr must be known to be object_address_exprt.

Parameters
exprSource expression
Returns
Object of type object_address_exprt

Definition at line 653 of file pointer_expr.h.

◆ to_object_descriptor_expr() [1/2]

const object_descriptor_exprt& to_object_descriptor_expr ( const exprt expr)
inline

Cast an exprt to an object_descriptor_exprt.

expr must be known to be object_descriptor_exprt.

Parameters
exprSource expression
Returns
Object of type object_descriptor_exprt

Definition at line 252 of file pointer_expr.h.

◆ to_object_descriptor_expr() [2/2]

object_descriptor_exprt& to_object_descriptor_expr ( exprt expr)
inline

Cast an exprt to an object_descriptor_exprt.

expr must be known to be object_descriptor_exprt.

Parameters
exprSource expression
Returns
Object of type object_descriptor_exprt

Definition at line 262 of file pointer_expr.h.

◆ to_object_size_expr() [1/2]

const object_size_exprt& to_object_size_expr ( const exprt expr)
inline

Cast an exprt to a object_size_exprt.

expr must be known to be object_size_exprt.

Parameters
exprSource expression
Returns
Object of type object_size_exprt

Definition at line 1423 of file pointer_expr.h.

◆ to_object_size_expr() [2/2]

object_size_exprt& to_object_size_expr ( exprt expr)
inline

Cast an exprt to a object_size_exprt.

expr must be known to be object_size_exprt.

Parameters
exprSource expression
Returns
Object of type object_size_exprt

Definition at line 1432 of file pointer_expr.h.

◆ to_pointer_in_range_expr() [1/2]

const pointer_in_range_exprt& to_pointer_in_range_expr ( const exprt expr)
inline

Definition at line 432 of file pointer_expr.h.

◆ to_pointer_in_range_expr() [2/2]

pointer_in_range_exprt& to_pointer_in_range_expr ( exprt expr)
inline

Definition at line 442 of file pointer_expr.h.

◆ to_pointer_object_expr() [1/2]

const pointer_object_exprt& to_pointer_object_expr ( const exprt expr)
inline

Cast an exprt to a pointer_object_exprt.

expr must be known to be pointer_object_exprt.

Parameters
exprSource expression
Returns
Object of type pointer_object_exprt

Definition at line 1378 of file pointer_expr.h.

◆ to_pointer_object_expr() [2/2]

pointer_object_exprt& to_pointer_object_expr ( exprt expr)
inline

Cast an exprt to a pointer_object_exprt.

expr must be known to be pointer_object_exprt.

Parameters
exprSource expression
Returns
Object of type pointer_object_exprt

Definition at line 1388 of file pointer_expr.h.

◆ to_pointer_offset_expr() [1/2]

const pointer_offset_exprt& to_pointer_offset_expr ( const exprt expr)
inline

Cast an exprt to a pointer_offset_exprt.

expr must be known to be pointer_offset_exprt.

Parameters
exprSource expression
Returns
Object of type pointer_offset_exprt

Definition at line 1320 of file pointer_expr.h.

◆ to_pointer_offset_expr() [2/2]

pointer_offset_exprt& to_pointer_offset_expr ( exprt expr)
inline

Cast an exprt to a pointer_offset_exprt.

expr must be known to be pointer_offset_exprt.

Parameters
exprSource expression
Returns
Object of type pointer_offset_exprt

Definition at line 1330 of file pointer_expr.h.

◆ to_pointer_type() [1/2]

const pointer_typet& to_pointer_type ( const typet type)
inline

Cast a typet to a pointer_typet.

This is an unchecked conversion. type must be known to be pointer_typet. Will fail with a precondition violation if type doesn't match.

Parameters
typeSource type.
Returns
Object of type pointer_typet.

Definition at line 93 of file pointer_expr.h.

◆ to_pointer_type() [2/2]

pointer_typet& to_pointer_type ( typet type)
inline

Cast a typet to a pointer_typet.

This is an unchecked conversion. type must be known to be pointer_typet. Will fail with a precondition violation if type doesn't match.

Parameters
typeSource type.
Returns
Object of type pointer_typet.

Definition at line 101 of file pointer_expr.h.

◆ to_prophecy_pointer_in_range_expr() [1/2]

const prophecy_pointer_in_range_exprt& to_prophecy_pointer_in_range_expr ( const exprt expr)
inline

Definition at line 517 of file pointer_expr.h.

◆ to_prophecy_pointer_in_range_expr() [2/2]

prophecy_pointer_in_range_exprt& to_prophecy_pointer_in_range_expr ( exprt expr)
inline

Definition at line 529 of file pointer_expr.h.

◆ to_prophecy_r_ok_expr()

const prophecy_r_ok_exprt& to_prophecy_r_ok_expr ( const exprt expr)
inline

Definition at line 1144 of file pointer_expr.h.

◆ to_prophecy_r_or_w_ok_expr()

const prophecy_r_or_w_ok_exprt& to_prophecy_r_or_w_ok_expr ( const exprt expr)
inline

Definition at line 1095 of file pointer_expr.h.

◆ to_prophecy_w_ok_expr()

const prophecy_w_ok_exprt& to_prophecy_w_ok_expr ( const exprt expr)
inline

Definition at line 1192 of file pointer_expr.h.

◆ to_r_ok_expr()

const r_ok_exprt& to_r_ok_expr ( const exprt expr)
inline

Definition at line 979 of file pointer_expr.h.

◆ to_r_or_w_ok_expr()

const r_or_w_ok_exprt& to_r_or_w_ok_expr ( const exprt expr)
inline

Definition at line 949 of file pointer_expr.h.

◆ to_reference_type() [1/2]

const reference_typet& to_reference_type ( const typet type)
inline

Cast a typet to a reference_typet.

This is an unchecked conversion. type must be known to be reference_typet. Will fail with a precondition violation if type doesn't match.

Parameters
typeSource type.
Returns
Object of type reference_typet.

Definition at line 162 of file pointer_expr.h.

◆ to_reference_type() [2/2]

reference_typet& to_reference_type ( typet type)
inline

Cast a typet to a reference_typet.

This is an unchecked conversion. type must be known to be reference_typet. Will fail with a precondition violation if type doesn't match.

Parameters
typeSource type.
Returns
Object of type reference_typet.

Definition at line 169 of file pointer_expr.h.

◆ to_separate_expr() [1/2]

const separate_exprt& to_separate_expr ( const exprt expr)
inline

Cast an exprt to a separate_exprt.

expr must be known to be separate_exprt.

Parameters
exprSource expression
Returns
Object of type separate_exprt

Definition at line 1717 of file pointer_expr.h.

◆ to_separate_expr() [2/2]

separate_exprt& to_separate_expr ( exprt expr)
inline

Cast an exprt to a separate_exprt.

expr must be known to be separate_exprt.

Parameters
exprSource expression
Returns
Object of type separate_exprt

Definition at line 1726 of file pointer_expr.h.

◆ to_w_ok_expr()

const w_ok_exprt& to_w_ok_expr ( const exprt expr)
inline

Definition at line 1008 of file pointer_expr.h.

◆ to_writeable_object_expr() [1/2]

const writeable_object_exprt& to_writeable_object_expr ( const exprt expr)
inline

Cast an exprt to a writeable_object_exprt.

expr must be known to be writeable_object_exprt.

Parameters
exprSource expression
Returns
Object of type writeable_object_exprt

Definition at line 1664 of file pointer_expr.h.

◆ to_writeable_object_expr() [2/2]

writeable_object_exprt& to_writeable_object_expr ( exprt expr)
inline

Cast an exprt to a writeable_object_exprt.

expr must be known to be writeable_object_exprt.

Parameters
exprSource expression
Returns
Object of type writeable_object_exprt

Definition at line 1674 of file pointer_expr.h.

◆ validate_expr() [1/25]

void validate_expr ( const address_of_exprt value)
inline

Definition at line 566 of file pointer_expr.h.

◆ validate_expr() [2/25]

void validate_expr ( const annotated_pointer_constant_exprt value)
inline

Definition at line 1247 of file pointer_expr.h.

◆ validate_expr() [3/25]

void validate_expr ( const cstrlen_exprt value)
inline

Definition at line 1541 of file pointer_expr.h.

◆ validate_expr() [4/25]

void validate_expr ( const dereference_exprt value)
inline

Definition at line 879 of file pointer_expr.h.

◆ validate_expr() [5/25]

void validate_expr ( const dynamic_object_exprt value)
inline

Definition at line 304 of file pointer_expr.h.

◆ validate_expr() [6/25]

void validate_expr ( const element_address_exprt value)
inline

Definition at line 803 of file pointer_expr.h.

◆ validate_expr() [7/25]

void validate_expr ( const field_address_exprt value)
inline

Definition at line 716 of file pointer_expr.h.

◆ validate_expr() [8/25]

void validate_expr ( const is_cstring_exprt value)
inline

Definition at line 1483 of file pointer_expr.h.

◆ validate_expr() [9/25]

void validate_expr ( const is_dynamic_object_exprt value)
inline

Definition at line 359 of file pointer_expr.h.

◆ validate_expr() [10/25]

void validate_expr ( const live_object_exprt value)
inline

Definition at line 1597 of file pointer_expr.h.

◆ validate_expr() [11/25]

void validate_expr ( const object_address_exprt value)
inline

Definition at line 632 of file pointer_expr.h.

◆ validate_expr() [12/25]

void validate_expr ( const object_descriptor_exprt value)
inline

Definition at line 240 of file pointer_expr.h.

◆ validate_expr() [13/25]

void validate_expr ( const object_size_exprt value)
inline

Definition at line 1446 of file pointer_expr.h.

◆ validate_expr() [14/25]

void validate_expr ( const pointer_in_range_exprt value)
inline

Definition at line 427 of file pointer_expr.h.

◆ validate_expr() [15/25]

void validate_expr ( const pointer_object_exprt value)
inline

Definition at line 1364 of file pointer_expr.h.

◆ validate_expr() [16/25]

void validate_expr ( const pointer_offset_exprt value)
inline

Definition at line 1306 of file pointer_expr.h.

◆ validate_expr() [17/25]

void validate_expr ( const prophecy_pointer_in_range_exprt value)
inline

Definition at line 510 of file pointer_expr.h.

◆ validate_expr() [18/25]

void validate_expr ( const prophecy_r_ok_exprt value)
inline

Definition at line 1139 of file pointer_expr.h.

◆ validate_expr() [19/25]

void validate_expr ( const prophecy_r_or_w_ok_exprt value)
inline

Definition at line 1089 of file pointer_expr.h.

◆ validate_expr() [20/25]

void validate_expr ( const prophecy_w_ok_exprt value)
inline

Definition at line 1187 of file pointer_expr.h.

◆ validate_expr() [21/25]

void validate_expr ( const r_ok_exprt value)
inline

Definition at line 974 of file pointer_expr.h.

◆ validate_expr() [22/25]

void validate_expr ( const r_or_w_ok_exprt value)
inline

Definition at line 944 of file pointer_expr.h.

◆ validate_expr() [23/25]

void validate_expr ( const separate_exprt value)
inline

Definition at line 1707 of file pointer_expr.h.

◆ validate_expr() [24/25]

void validate_expr ( const w_ok_exprt value)
inline

Definition at line 1003 of file pointer_expr.h.

◆ validate_expr() [25/25]

void validate_expr ( const writeable_object_exprt value)
inline

Definition at line 1653 of file pointer_expr.h.