Module IRType
Minimal, language-neutral type system for the IR.
Import path
import semmle.code.cpp.ir.implementation.IRType
Classes
IRAddressType | An address type, representing the memory address of data. Used to represent pointers, references, and lvalues, include those that are garbage collected. |
IRBooleanType | A Boolean type, which can hold the values |
IRErrorType | An error type. Used when an error in the source code prevents the extractor from determining the proper type. |
IRFloatingPointType | A floating-point type. |
IRFunctionAddressType | An address type, representing the memory address of code. Used to represent function pointers, function references, and the target of a direct function call. |
IRIntegerType | An integer type. This includes |
IRNumericType | A numeric type. This includes |
IROpaqueType | A type with known size that does not fit any of the other kinds of type. Used to represent classes, structs, unions, fixed-size arrays, pointers-to-member, and more. |
IRSignedIntegerType | A signed two’s-complement integer. Also used to represent enums whose underlying type is a signed integer, as well as character types whose representation is signed. |
IRType | The language-neutral type of an IR |
IRUnknownType | An unknown type. Generally used to represent results and operands that access an unknown set of memory locations, such as the side effects of a function call. |
IRUnsignedIntegerType | An unsigned two’s-complement integer. Also used to represent enums whose underlying type is an unsigned integer, as well as character types whose representation is unsigned. |
IRVoidType | A void type, which has no values. Used to represent the result type of an instruction that does not produce a result. |
Modules
IRTypeConsistency | INTERNAL: Do not use. Query predicates used to check invariants that should hold for all |