#include <SVFType.h>
|
| | StInfo (u32_t id, std::vector< u32_t > fldIdxVec, std::vector< u32_t > elemIdxVec, Map< u32_t, const SVFType * > fldIdx2TypeMap, std::vector< const SVFType * > finfo, u32_t stride, u32_t numOfFlattenElements, u32_t numOfFlattenFields, std::vector< const SVFType * > flattenElementTypes) |
| const u32_t | getStinfoId () const |
| const Map< u32_t, const SVFType * > & | getFldIdx2TypeMap () const |
| void | setStinfoId (u32_t id) |
Flattened type information of StructType, ArrayType and SingleValueType
Definition at line 44 of file SVFType.h.
◆ StInfo() [1/4]
| SVF::StInfo::StInfo |
( |
u32_t | id, |
|
|
std::vector< u32_t > | fldIdxVec, |
|
|
std::vector< u32_t > | elemIdxVec, |
|
|
Map< u32_t, const SVFType * > | fldIdx2TypeMap, |
|
|
std::vector< const SVFType * > | finfo, |
|
|
u32_t | stride, |
|
|
u32_t | numOfFlattenElements, |
|
|
u32_t | numOfFlattenFields, |
|
|
std::vector< const SVFType * > | flattenElementTypes ) |
|
inlineprotected |
Definition at line 51 of file SVFType.h.
55 {
56
57 }
std::vector< u32_t > fldIdxVec
flattened field indices of a struct (ignoring arrays)
u32_t numOfFlattenElements
number of elements after flattening (including array elements)
std::vector< u32_t > elemIdxVec
u32_t numOfFlattenFields
number of fields after flattening (ignoring array elements)
std::vector< const SVFType * > flattenElementTypes
Type vector of fields.
Map< u32_t, const SVFType * > fldIdx2TypeMap
Types of all fields of a struct.
std::vector< const SVFType * > finfo
All field infos after flattening a struct.
◆ StInfo() [2/4]
◆ StInfo() [3/4]
| SVF::StInfo::StInfo |
( |
const StInfo & | st | ) |
|
|
delete |
◆ StInfo() [4/4]
| SVF::StInfo::StInfo |
( |
u32_t | s | ) |
|
|
inlineexplicit |
◆ ~StInfo()
◆ addFldWithType()
Add field index and element index and their corresponding type.
Add field (index and offset) with its corresponding type.
Definition at line 58 of file SVFValue.cpp.
◆ getFlattenedElemIdxVec() [1/2]
| std::vector< u32_t > & SVF::StInfo::getFlattenedElemIdxVec |
( |
| ) |
|
|
inline |
◆ getFlattenedElemIdxVec() [2/2]
| const std::vector< u32_t > & SVF::StInfo::getFlattenedElemIdxVec |
( |
| ) |
const |
|
inline |
◆ getFlattenedFieldIdxVec() [1/2]
| std::vector< u32_t > & SVF::StInfo::getFlattenedFieldIdxVec |
( |
| ) |
|
|
inline |
◆ getFlattenedFieldIdxVec() [2/2]
| const std::vector< u32_t > & SVF::StInfo::getFlattenedFieldIdxVec |
( |
| ) |
const |
|
inline |
◆ getFlattenElementTypes() [1/2]
| std::vector< const SVFType * > & SVF::StInfo::getFlattenElementTypes |
( |
| ) |
|
|
inline |
◆ getFlattenElementTypes() [2/2]
| const std::vector< const SVFType * > & SVF::StInfo::getFlattenElementTypes |
( |
| ) |
const |
|
inline |
◆ getFlattenFieldTypes() [1/2]
| std::vector< const SVFType * > & SVF::StInfo::getFlattenFieldTypes |
( |
| ) |
|
|
inline |
◆ getFlattenFieldTypes() [2/2]
| const std::vector< const SVFType * > & SVF::StInfo::getFlattenFieldTypes |
( |
| ) |
const |
|
inline |
◆ getFldIdx2TypeMap()
| const Map< u32_t, const SVFType * > & SVF::StInfo::getFldIdx2TypeMap |
( |
| ) |
const |
|
inlineprotected |
◆ getNumOfFlattenElements()
| u32_t SVF::StInfo::getNumOfFlattenElements |
( |
| ) |
const |
|
inline |
Return number of elements after flattening (including array elements).
Definition at line 164 of file SVFType.h.
◆ getNumOfFlattenFields()
| u32_t SVF::StInfo::getNumOfFlattenFields |
( |
| ) |
const |
|
inline |
Return the number of fields after flattening (ignoring array elements).
Definition at line 170 of file SVFType.h.
◆ getOriginalElemType()
| const SVFType * StInfo::getOriginalElemType |
( |
u32_t | fldIdx | ) |
const |
struct A { int id; int salary; }; struct B { char name[20]; struct A a;} B b;
OriginalFieldType of b with field_idx 1 : Struct A FlatternedFieldType of b with field_idx 1 : int
Definition at line 69 of file SVFValue.cpp.
70{
71 Map<u32_t, const SVFType*>::const_iterator it =
fldIdx2TypeMap.find(fldIdx);
73 return it->second;
74 return nullptr;
75}
◆ getStinfoId()
| const u32_t SVF::StInfo::getStinfoId |
( |
| ) |
const |
|
inlineprotected |
◆ getStride()
| u32_t SVF::StInfo::getStride |
( |
| ) |
const |
|
inline |
Return the stride.
Definition at line 175 of file SVFType.h.
◆ operator=()
| void SVF::StInfo::operator= |
( |
const StInfo & | | ) |
|
|
delete |
◆ setNumOfFieldsAndElems()
| void SVF::StInfo::setNumOfFieldsAndElems |
( |
u32_t | nf, |
|
|
u32_t | ne ) |
|
inline |
Set number of fields and elements of an aggregate.
Definition at line 157 of file SVFType.h.
◆ setStinfoId()
| void SVF::StInfo::setStinfoId |
( |
u32_t | id | ) |
|
|
inlineprotected |
◆ GraphDBClient
| friend class GraphDBClient |
|
friend |
◆ IRGraph
◆ elemIdxVec
| std::vector<u32_t> SVF::StInfo::elemIdxVec |
|
private |
flattened element indices including structs and arrays by considering strides
Definition at line 80 of file SVFType.h.
◆ finfo
| std::vector<const SVFType*> SVF::StInfo::finfo |
|
private |
All field infos after flattening a struct.
Definition at line 84 of file SVFType.h.
◆ flattenElementTypes
| std::vector<const SVFType*> SVF::StInfo::flattenElementTypes |
|
private |
◆ fldIdx2TypeMap
Types of all fields of a struct.
Definition at line 82 of file SVFType.h.
◆ fldIdxVec
| std::vector<u32_t> SVF::StInfo::fldIdxVec |
|
private |
flattened field indices of a struct (ignoring arrays)
Definition at line 77 of file SVFType.h.
◆ numOfFlattenElements
| u32_t SVF::StInfo::numOfFlattenElements |
|
private |
number of elements after flattening (including array elements)
Definition at line 89 of file SVFType.h.
◆ numOfFlattenFields
| u32_t SVF::StInfo::numOfFlattenFields |
|
private |
number of fields after flattening (ignoring array elements)
Definition at line 91 of file SVFType.h.
◆ StInfoId
| u32_t SVF::StInfo::StInfoId |
|
private |
◆ stride
| u32_t SVF::StInfo::stride |
|
private |
stride represents the number of repetitive elements if this StInfo represent an ArrayType. stride is 1 by default.
Definition at line 87 of file SVFType.h.
The documentation for this class was generated from the following files:
- /home/runner/work/SVF/SVF/svf/include/SVFIR/SVFType.h
- /home/runner/work/SVF/SVF/svf/lib/SVFIR/SVFValue.cpp