| call_id | |
| FileIdentifier | |
| Identifier | |
| il::_namespace_context | |
| il::addressof_expression | &exp |
| il::array_ref_expression | Represents a reference to any non-pointer array |
| il::array_type | Abstract class representing a non-pointer array type |
| il::assembly | Inline assembly |
| il::base_type | Represents base types like integer and float |
| il::binop_expression | An expression of the form exp1 binop exp2 |
| il::block | Represents a block statement {decls; S1; ... ; S_k} |
| il::block_expression | This is used to model a gcc extension where you can write code like a = ({args[1]+1;args[2];}); ({args[1]+1;args[2];}) evaluates to the result of the last statement in the block |
| il::break_statement | Represents a break construct |
| il::builtin_expression | Used to model "built-in" gcc expressions such as va_arg() |
| il::case_label | A case label |
| il::cast_expression | Represents a cast (t) exp |
| il::complex_const_exp | Complex number representation |
| il::complex_type | Type of a complex number |
| il::conditional_expression | Conditional expression of the form exp ? a :b |
| il::const_expression | An abstract class representing integer, real or string constants |
| il::constarray_type | The size of a const_array is known at compile time |
| il::continue_statement | A continue construct inside a loop |
| il::control_statement | An abstract class representing any control statement |
| il::declaration | An abstract class representing variable and function decalarations |
| il::deref_expression | A pointer dereference expression of the form *exp |
| il::do_while_loop | A do while loop construct |
| il::enum_info | |
| il::enum_type | Represents an enum type |
| il::expr_list_expression | An expression list expression consists of comma separated expressions as in i++, j++ in a for loop |
| il::expression | An abstract class that all different expressions inherit from |
| il::expression_instruction | Expression used as an instruction such as i++; |
| il::field_ref_expression | A field reference expression of the form exp.field The field is represented as a record_info |
| il::file | File representation |
| il::fixed_const_exp | Decimal constant representation |
| il::for_loop | A for loop construct |
| il::function_address_expression | Result of taking the address of a function |
| il::function_call_expression | A function call |
| il::function_declaration | Represents a function declaration |
| il::function_pointer_call_expression | Represents a function pointer invocation |
| il::function_type | Represents a function type |
| il::goto_statement | A goto statement |
| il::if_statement | The representation of an if statement |
| il::initializer_list_expression | An initializer list expression such as struct point {int x; int y;} p = {1, 2}; |
| il::instruction | |
| il::integer_const_exp | Representation of an integer constant |
| il::label | A label |
| il::location | A location in the source file is identified by its starting and ending lines and byte offsets for the start and end lines |
| il::modify_expression | Used to model C feature where set statements can be used as expressions, e.g., c = (a=b) |
| il::namespace_context | |
| il::node | Represents a generic AST node, such as a statement, expression, declaration etc |
| il::noop_instruction | A noop instruction |
| il::pointer_type | Pointer to type elem_type |
| il::real_const_exp | A real constant expression |
| il::record_info | Represents struct fields (name,offset etc.) |
| il::record_type | Struct, class, union |
| il::return_statement | Return exp; |
| il::set_instruction | Lhs = rhs; |
| il::statement | |
| il::string_const_exp | A string constant |
| il::switch_statement | The switch construct |
| il::ta_data | |
| il::throw_expression | &exp |
| il::translation_unit | A translation unit consists of one or more files |
| il::try_catch_statement | The representation of an try-catch statement |
| il::try_finally_statement | The representation of a try-finally statement |
| il::type | Parent class of all the concrete types |
| il::type::type_eq | |
| il::type::type_hash | |
| il::unop_expression | An expression of the form (unop exp) |
| il::vararray_type | Size of a vararray may not be known at compile time |
| il::variable | Representation of a program variable |
| il::variable_declaration | Represents a variable declaration, possibly containing an initialization expression |
| il::variable_expression | A variable expression |
| il::vector_const_exp | A vector constant expression |
| il::vector_type | GCC vector type |
| il::while_loop | A while loop construct |
| sail::AddressLabel | V = &label. This is used for modeling a GNU C extension that allows taking address of labels |
| sail::AddressString | V = &str_constant |
| sail::AddressVar | V = &s. Note that the left hand side is a symbol rather than a variable because taking the address of constants is legal in C |
| sail::ArrayRefRead | V1 = v2[index].(f1 ... .fk); field selectors are optional -- this instruction includes field selectors only if ALLOW_OFFSETS is enabled |
| sail::ArrayRefWrite | V1[index].(f1...fk) = s. Field selectors are optional and appear only if ALLOW_OFFSETS is enabled |
| sail::Assembly | Represents inline assembly |
| sail::Assignment | V = s |
| sail::Assume | Assume(predicate) serves as an annotation for static analysis |
| sail::AssumeSize | A convenience instruction for annotating buffer sizes. assume_size(b, s) indicates size of buffer b is s (in bytes) |
| sail::BasicBlock | Represents a basic block in the CFG |
| sail::Binop | An instruction of the form v = s1 binop s2 |
| sail::Block | An abstract class that BasicBlock and SuperBlock inherit from |
| sail::Branch | A branch instruction is of the form s1!=0 : l1, s2!=0 : l_2 , ... s_k!=0:l_k |
| sail::Cast | A cast instruction of the form v = (T) s |
| sail::Cfg | Representation of a control flow graph |
| sail::CfgEdge | Represents an edge from a source block to a target block possibly labeled with some condition |
| sail::Compare | |
| sail::CompareBlock | |
| sail::CompareEdge | |
| sail::Constant | Represents a constant |
| sail::DropVariable | This instruction is optional and marks the last use of temporaries introduced by SAIL |
| sail::FieldRefRead | Represents a field read instruction of the form v1 = v2.f1. ... .fk |
| sail::FieldRefWrite | Represents a field write of the form v.f1...fk = s |
| sail::Function | Representation of a function in the low-level language. Most of the work of translating the high-level language to the low-level language is done here |
| sail::FunctionCall | Represents a function call instruction of the form ret = f(s1, ... ,sn) |
| sail::FunctionPointerCall | A function pointer call instruction is of the form ret = (*fn_ptr)(s1, ... sk) |
| sail::Instruction | All low-level instructions defined by SAIL inherit from Instruction |
| sail::Jump | Jump instruction to some label |
| sail::Label | A label represented by the string label_name |
| sail::Load | A load instruction of of the form v1 = *s.(f1...f_k) The field selectors are optional and only generated if ALLOW_OFFSETS enabled |
| sail::Loop | |
| sail::LoopCompare | |
| sail::LoopInvocationInstruction | In SAIL loops can be treated as tail-recursive functions; this instruction represents a tail-recursive invocation of the loop body and corresponds to a back-edge |
| sail::SaveInstruction | |
| sail::Serializer | This class can be used to serialize a translation unit |
| sail::StaticAssert | A static assert instruction of the form static_assert(predicate) tells the static analysis to check whether this predicate holds |
| sail::Store | A store instruction is of the form *s1.f1...fn = s2. Field selectors are optional and only appear if ALLOW_OFFSETS is enabled |
| sail::SummaryUnit | A summary unit is either a function or a super block, i.e. any piece of code for which an analysis generates a summary |
| sail::SuperBlock | This is the structured representation of a loop with a single exit point |
| sail::Symbol | Represents either a variable or a constant |
| sail::T1T2Block | |
| sail::ToposortBlock | |
| sail::TranslationUnit | Represents a single translation unit |
| sail::Unop | An instruction of the form v = (unop) s |
| sail::Variable | Represents a variable, which can be either an actual program variable or a temporary introduced by SAIL |
| Serializable | |