CBMC
class_identifier.cpp File Reference

Extract class identifier. More...

#include "class_identifier.h"
#include <util/c_types.h>
#include <util/namespace.h>
#include <util/pointer_expr.h>
#include <util/std_expr.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 struct_tag_typet &suggested_type, const namespacet &ns)
 
void set_class_identifier (struct_exprt &expr, const namespacet &ns, const struct_tag_typet &class_type)
 If expr has its components filled in then sets the @class_identifier member of the struct. More...
 

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 22 of file class_identifier.cpp.

◆ get_class_identifier_field()

exprt get_class_identifier_field ( const exprt this_expr_in,
const struct_tag_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 57 of file class_identifier.cpp.

◆ set_class_identifier()

void set_class_identifier ( struct_exprt expr,
const namespacet ns,
const struct_tag_typet class_type 
)

If expr has its components filled in then sets the @class_identifier member of the struct.

Remarks
Follows through base class members until it gets to the object type that contains the @class_identifier member
Parameters
exprAn expression that represents a struct
nsThe namespace used to resolve symbol references in the type of the struct
class_typeA symbol whose identifier is the name of the class

Definition at line 83 of file class_identifier.cpp.