cprover
class_identifier.cpp File Reference

Extract class identifier. More...

#include "class_identifier.h"
#include <util/std_expr.h>
#include <util/c_types.h>
#include <util/namespace.h>
Include dependency graph for class_identifier.cpp:

Go to the source code of this file.

Functions

static exprt build_class_identifier (const exprt &src, const namespacet &ns)
 
exprt get_class_identifier_field (const exprt &this_expr_in, const symbol_typet &suggested_type, const namespacet &ns)
 

Detailed Description

Extract class identifier.

Definition in file class_identifier.cpp.

Function Documentation

§ build_class_identifier()

static exprt build_class_identifier ( const exprt src,
const namespacet ns 
)
static
parameters: Struct expression
Returns
Member expression giving the clsid field of the input, or its parent, grandparent, etc.

Definition at line 21 of file class_identifier.cpp.

References struct_union_typet::components(), namespace_baset::follow(), irept::swap(), to_struct_type(), and exprt::type().

Referenced by get_class_identifier_field().

§ get_class_identifier_field()

exprt get_class_identifier_field ( const exprt this_expr_in,
const symbol_typet suggested_type,
const namespacet ns 
)
parameters: Pointer expression of any pointer type, including void*,
and a recommended access type if the pointer is void-typed.
Returns
Member expression to access a class identifier, as above.

Definition at line 56 of file class_identifier.cpp.

References build_class_identifier(), irept::id(), pointer_type(), typet::subtype(), and exprt::type().

Referenced by remove_instanceoft::lower_instanceof(), and remove_virtual_functionst::remove_virtual_function().