cprover
base_type.cpp File Reference

Base Type Computation. More...

#include "base_type.h"
#include <set>
#include "namespace.h"
#include "std_types.h"
#include "symbol.h"
#include "union_find.h"
+ Include dependency graph for base_type.cpp:

Go to the source code of this file.

Classes

class  base_type_eqt
 

Functions

void base_type_rec (typet &type, const namespacet &ns, std::set< irep_idt > &symb)
 
void base_type (typet &type, const namespacet &ns)
 
void base_type (exprt &expr, const namespacet &ns)
 
bool base_type_eq (const typet &type1, const typet &type2, const namespacet &ns)
 Check types for equality across all levels of hierarchy. More...
 
bool base_type_eq (const exprt &expr1, const exprt &expr2, const namespacet &ns)
 Check expressions for equality across all levels of hierarchy. More...
 

Detailed Description

Base Type Computation.

Definition in file base_type.cpp.

Function Documentation

◆ base_type() [1/2]

void base_type ( exprt expr,
const namespacet ns 
)

Definition at line 115 of file base_type.cpp.

◆ base_type() [2/2]

void base_type ( typet type,
const namespacet ns 
)

Definition at line 109 of file base_type.cpp.

◆ base_type_eq() [1/2]

bool base_type_eq ( const exprt expr1,
const exprt expr2,
const namespacet ns 
)

Check expressions for equality across all levels of hierarchy.

Parameters
expr1The first expression to compare.
expr2The second expression to compare.
nsThe namespace, needed for resolution of symbols.

Definition at line 303 of file base_type.cpp.

◆ base_type_eq() [2/2]

bool base_type_eq ( const typet type1,
const typet type2,
const namespacet ns 
)

Check types for equality across all levels of hierarchy.

Example:

  • struct_typet {union_tag_typet("a")} and struct_typet {ns.lookup("a") .type} will compare equal.
    Parameters
    type1The first type to compare.
    type2The second type to compare.
    nsThe namespace, needed for resolution of symbols.

Definition at line 290 of file base_type.cpp.

◆ base_type_rec()

void base_type_rec ( typet type,
const namespacet ns,
std::set< irep_idt > &  symb 
)

Definition at line 53 of file base_type.cpp.