CBMC
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
std_code.h File Reference
#include <list>
#include "std_code_base.h"
#include "std_expr.h"
+ Include dependency graph for std_code.h:

Go to the source code of this file.

Classes

  A codet representing an assignment in the program. More...
 
class   code_blockt
  A codet representing sequential composition of program statements. More...
 
class   code_assumet
  An assumption, which must hold in subsequent code. More...
 
class   code_assertt
  A non-fatal assertion, which checks a condition then permits execution to continue. More...
 
class   code_skipt
  A codet representing a skip statement. More...
 
  A codet representing the declaration of a local variable. More...
 
class   code_ifthenelset
  codet representation of an if-then-else statement. More...
 
class   code_switcht
  codet representing a switch statement. More...
 
class   code_whilet
  codet representing a while statement. More...
 
class   code_dowhilet
  codet representation of a do while statement. More...
 
class   code_fort
  codet representation of a for statement. More...
 
class   code_gotot
  codet representation of a goto statement. More...
 
  codet representation of a "return from a function" statement. More...
 
class   code_labelt
  codet representation of a label for branch targets. More...
 
  codet representation of a switch-case, i.e. a case statement within a switch. More...
 
  codet representation of a switch-case, i.e. a case statement within a switch. More...
 
class   code_breakt
  codet representation of a break statement (within a for or while loop). More...
 
class   code_continuet
  codet representation of a continue statement (within a for or while loop). More...
 
class   code_asmt
  codet representation of an inline assembler statement. More...
 
class   code_asm_gcct
  codet representation of an inline assembler statement, for the gcc flavor. More...
 
class   code_expressiont
  codet representation of an expression statement. More...
 
  An expression containing a side effect. More...
 
  A side_effect_exprt that returns a non-deterministically chosen value. More...
 
  A side_effect_exprt that performs an assignment. More...
 
  A side_effect_exprt that contains a statement. More...
 
  A side_effect_exprt representation of a function call side effect. More...
 
  A side_effect_exprt representation of a side effect that throws an exception. More...
 
class   code_push_catcht
  Pushes an exception handler, of the form: exception_tag1 -> label1 exception_tag2 -> label2 ... When used in a GOTO program statement, the corresponding opcode must be CATCH, and the statement's targets must be in one-to-one correspondence with the exception tags. More...
 
 
class   code_pop_catcht
  Pops an exception handler from the stack of active handlers (i.e. More...
 
class   code_landingpadt
  A statement that catches an exception, assigning the exception in flight to an expression (e.g. More...
 
class   code_try_catcht
  codet representation of a try/catch block. More...
 
  This class is used to interface between a language frontend and goto-convert – it communicates the identifiers of the parameters of a function or method. More...
 

Namespaces

namespace   detail
 

Functions

template<>
 
 
 
 
template<>
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
template<>
 
 
 
 
  Create a fatal assertion, which checks a condition and then halts if it does not hold.
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
 
template<>
 
 
 
 
template<typename Tag >
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
template<>
 
 
 
 
 
 

Function Documentation

◆  can_cast_expr< code_asm_gcct >()

template<>
inline

Definition at line 1363 of file std_code.h.

◆  can_cast_expr< code_asmt >()

template<>
inline

Definition at line 1274 of file std_code.h.

◆  can_cast_expr< code_assertt >()

template<>
inline

Definition at line 294 of file std_code.h.

◆  can_cast_expr< code_assumet >()

template<>
inline

Definition at line 241 of file std_code.h.

◆  can_cast_expr< code_blockt >()

template<>
inline

Definition at line 195 of file std_code.h.

◆  can_cast_expr< code_breakt >()

template<>
inline

Definition at line 1195 of file std_code.h.

◆  can_cast_expr< code_continuet >()

template<>
inline

Definition at line 1231 of file std_code.h.

◆  can_cast_expr< code_dowhilet >()

template<>
inline

Definition at line 706 of file std_code.h.

◆  can_cast_expr< code_expressiont >()

template<>
inline

Definition at line 1418 of file std_code.h.

◆  can_cast_expr< code_fort >()

template<>
inline

Definition at line 813 of file std_code.h.

◆  can_cast_expr< code_frontend_assignt >()

template<>

Definition at line 103 of file std_code.h.

◆  can_cast_expr< code_frontend_declt >()

template<>

Definition at line 419 of file std_code.h.

◆  can_cast_expr< code_frontend_returnt >()

template<>

Definition at line 933 of file std_code.h.

◆  can_cast_expr< code_gcc_switch_case_ranget >()

template<>

Definition at line 1150 of file std_code.h.

◆  can_cast_expr< code_gotot >()

template<>
inline

Definition at line 865 of file std_code.h.

◆  can_cast_expr< code_ifthenelset >()

template<>
inline

Definition at line 520 of file std_code.h.

◆  can_cast_expr< code_labelt >()

template<>
inline

Definition at line 994 of file std_code.h.

◆  can_cast_expr< code_landingpadt >()

template<>
inline

Definition at line 1964 of file std_code.h.

◆  can_cast_expr< code_pop_catcht >()

template<>
inline

Definition at line 1912 of file std_code.h.

◆  can_cast_expr< code_push_catcht >()

template<>
inline

Definition at line 1875 of file std_code.h.

◆  can_cast_expr< code_skipt >()

template<>
inline

Definition at line 335 of file std_code.h.

◆  can_cast_expr< code_switch_caset >()

template<>

Definition at line 1067 of file std_code.h.

◆  can_cast_expr< code_switcht >()

template<>
inline

Definition at line 582 of file std_code.h.

◆  can_cast_expr< code_try_catcht >()

template<>
inline

Definition at line 2040 of file std_code.h.

◆  can_cast_expr< code_whilet >()

template<>
inline

Definition at line 644 of file std_code.h.

◆  can_cast_expr< side_effect_expr_assignt >()

template<>

Definition at line 1613 of file std_code.h.

◆  can_cast_expr< side_effect_expr_function_callt >()

template<>

Definition at line 1730 of file std_code.h.

◆  can_cast_expr< side_effect_expr_nondett >()

template<>

Definition at line 1540 of file std_code.h.

◆  can_cast_expr< side_effect_expr_statement_expressiont >()

template<>

Definition at line 1662 of file std_code.h.

◆  can_cast_expr< side_effect_expr_throwt >()

template<>

Definition at line 1770 of file std_code.h.

◆  can_cast_expr< side_effect_exprt >()

template<>

Definition at line 1498 of file std_code.h.

◆  create_fatal_assertion()

code_blockt create_fatal_assertion ( const exprtcondition,
const source_locationtsource_location 
)

Create a fatal assertion, which checks a condition and then halts if it does not hold.

Equivalent to ASSERT(condition); ASSUME(condition) .

Source level assertions should probably use this, whilst checks that are normally non-fatal at runtime, such as integer overflows, should use code_assertt by itself.

Parameters
condition condition to assert
source_location source location to attach to the generated code; conventionally this should have comment and property_class fields set to indicate the nature of the assertion.
Returns
A code block that asserts a condition then aborts if it does not hold.

Definition at line 120 of file std_code.cpp.

◆  to_code_asm() [1/2]

code_asmt & to_code_asm ( codetcode )
inline

Definition at line 1282 of file std_code.h.

◆  to_code_asm() [2/2]

const code_asmt & to_code_asm ( const codetcode )
inline

Definition at line 1288 of file std_code.h.

◆  to_code_asm_gcc() [1/2]

code_asm_gcct & to_code_asm_gcc ( codetcode )
inline

Definition at line 1373 of file std_code.h.

◆  to_code_asm_gcc() [2/2]

const code_asm_gcct & to_code_asm_gcc ( const codetcode )
inline

Definition at line 1382 of file std_code.h.

◆  to_code_assert() [1/2]

code_assertt & to_code_assert ( codetcode )
inline

Definition at line 312 of file std_code.h.

◆  to_code_assert() [2/2]

const code_assertt & to_code_assert ( const codetcode )
inline

Definition at line 304 of file std_code.h.

◆  to_code_assume() [1/2]

code_assumet & to_code_assume ( codetcode )
inline

Definition at line 259 of file std_code.h.

◆  to_code_assume() [2/2]

const code_assumet & to_code_assume ( const codetcode )
inline

Definition at line 251 of file std_code.h.

◆  to_code_block() [1/2]

code_blockt & to_code_block ( codetcode )
inline

Definition at line 209 of file std_code.h.

◆  to_code_block() [2/2]

const code_blockt & to_code_block ( const codetcode )
inline

Definition at line 203 of file std_code.h.

◆  to_code_break() [1/2]

code_breakt & to_code_break ( codetcode )
inline

Definition at line 1209 of file std_code.h.

◆  to_code_break() [2/2]

const code_breakt & to_code_break ( const codetcode )
inline

Definition at line 1203 of file std_code.h.

◆  to_code_continue() [1/2]

code_continuet & to_code_continue ( codetcode )
inline

Definition at line 1245 of file std_code.h.

◆  to_code_continue() [2/2]

const code_continuet & to_code_continue ( const codetcode )
inline

Definition at line 1239 of file std_code.h.

◆  to_code_dowhile() [1/2]

code_dowhilet & to_code_dowhile ( codetcode )
inline

Definition at line 724 of file std_code.h.

◆  to_code_dowhile() [2/2]

const code_dowhilet & to_code_dowhile ( const codetcode )
inline

Definition at line 716 of file std_code.h.

◆  to_code_expression() [1/2]

code_expressiont & to_code_expression ( codetcode )
inline

Definition at line 1428 of file std_code.h.

◆  to_code_expression() [2/2]

const code_expressiont & to_code_expression ( const codetcode )
inline

Definition at line 1436 of file std_code.h.

◆  to_code_for() [1/2]

code_fort & to_code_for ( codetcode )
inline

Definition at line 831 of file std_code.h.

◆  to_code_for() [2/2]

const code_fort & to_code_for ( const codetcode )
inline

Definition at line 823 of file std_code.h.

◆  to_code_frontend_assign() [1/2]

code_frontend_assignt & to_code_frontend_assign ( codetcode )
inline

Definition at line 120 of file std_code.h.

◆  to_code_frontend_assign() [2/2]

const code_frontend_assignt & to_code_frontend_assign ( const codetcode )
inline

Definition at line 113 of file std_code.h.

◆  to_code_frontend_decl() [1/2]

code_frontend_declt & to_code_frontend_decl ( codetcode )
inline

Definition at line 436 of file std_code.h.

◆  to_code_frontend_decl() [2/2]

const code_frontend_declt & to_code_frontend_decl ( const codetcode )
inline

Definition at line 429 of file std_code.h.

◆  to_code_frontend_return() [1/2]

code_frontend_returnt & to_code_frontend_return ( codetcode )
inline

Definition at line 950 of file std_code.h.

◆  to_code_frontend_return() [2/2]

const code_frontend_returnt & to_code_frontend_return ( const codetcode )
inline

Definition at line 943 of file std_code.h.

◆  to_code_function_body() [1/2]

code_function_bodyt & to_code_function_body ( codetcode )
inline

Definition at line 2108 of file std_code.h.

◆  to_code_function_body() [2/2]

const code_function_bodyt & to_code_function_body ( const codetcode )
inline

Definition at line 2100 of file std_code.h.

◆  to_code_gcc_switch_case_range() [1/2]

code_gcc_switch_case_ranget & to_code_gcc_switch_case_range ( codetcode )
inline

Definition at line 1170 of file std_code.h.

◆  to_code_gcc_switch_case_range() [2/2]

const code_gcc_switch_case_ranget & to_code_gcc_switch_case_range ( const codetcode )
inline

Definition at line 1161 of file std_code.h.

◆  to_code_goto() [1/2]

code_gotot & to_code_goto ( codetcode )
inline

Definition at line 883 of file std_code.h.

◆  to_code_goto() [2/2]

const code_gotot & to_code_goto ( const codetcode )
inline

Definition at line 875 of file std_code.h.

◆  to_code_ifthenelse() [1/2]

code_ifthenelset & to_code_ifthenelse ( codetcode )
inline

Definition at line 538 of file std_code.h.

◆  to_code_ifthenelse() [2/2]

const code_ifthenelset & to_code_ifthenelse ( const codetcode )
inline

Definition at line 530 of file std_code.h.

◆  to_code_label() [1/2]

code_labelt & to_code_label ( codetcode )
inline

Definition at line 1012 of file std_code.h.

◆  to_code_label() [2/2]

const code_labelt & to_code_label ( const codetcode )
inline

Definition at line 1004 of file std_code.h.

◆  to_code_landingpad() [1/2]

static code_landingpadt & to_code_landingpad ( codetcode )
inlinestatic

Definition at line 1972 of file std_code.h.

◆  to_code_landingpad() [2/2]

static const code_landingpadt & to_code_landingpad ( const codetcode )
inlinestatic

Definition at line 1978 of file std_code.h.

◆  to_code_pop_catch() [1/2]

static code_pop_catcht & to_code_pop_catch ( codetcode )
inlinestatic

Definition at line 1920 of file std_code.h.

◆  to_code_pop_catch() [2/2]

static const code_pop_catcht & to_code_pop_catch ( const codetcode )
inlinestatic

Definition at line 1926 of file std_code.h.

◆  to_code_push_catch() [1/2]

static code_push_catcht & to_code_push_catch ( codetcode )
inlinestatic

Definition at line 1883 of file std_code.h.

◆  to_code_push_catch() [2/2]

static const code_push_catcht & to_code_push_catch ( const codetcode )
inlinestatic

Definition at line 1889 of file std_code.h.

◆  to_code_switch() [1/2]

code_switcht & to_code_switch ( codetcode )
inline

Definition at line 600 of file std_code.h.

◆  to_code_switch() [2/2]

const code_switcht & to_code_switch ( const codetcode )
inline

Definition at line 592 of file std_code.h.

◆  to_code_switch_case() [1/2]

code_switch_caset & to_code_switch_case ( codetcode )
inline

Definition at line 1085 of file std_code.h.

◆  to_code_switch_case() [2/2]

const code_switch_caset & to_code_switch_case ( const codetcode )
inline

Definition at line 1077 of file std_code.h.

◆  to_code_try_catch() [1/2]

code_try_catcht & to_code_try_catch ( codetcode )
inline

Definition at line 2058 of file std_code.h.

◆  to_code_try_catch() [2/2]

const code_try_catcht & to_code_try_catch ( const codetcode )
inline

Definition at line 2050 of file std_code.h.

◆  to_code_while() [1/2]

code_whilet & to_code_while ( codetcode )
inline

Definition at line 662 of file std_code.h.

◆  to_code_while() [2/2]

const code_whilet & to_code_while ( const codetcode )
inline

Definition at line 654 of file std_code.h.

◆  to_side_effect_expr() [1/2]

const side_effect_exprt & to_side_effect_expr ( const exprtexpr )
inline

Definition at line 1512 of file std_code.h.

◆  to_side_effect_expr() [2/2]

side_effect_exprt & to_side_effect_expr ( exprtexpr )
inline

Definition at line 1506 of file std_code.h.

◆  to_side_effect_expr_assign() [1/2]

const side_effect_expr_assignt & to_side_effect_expr_assign ( const exprtexpr )
inline

Definition at line 1626 of file std_code.h.

◆  to_side_effect_expr_assign() [2/2]

side_effect_expr_assignt & to_side_effect_expr_assign ( exprtexpr )
inline

Definition at line 1618 of file std_code.h.

◆  to_side_effect_expr_function_call() [1/2]

const side_effect_expr_function_callt & to_side_effect_expr_function_call ( const exprtexpr )
inline

Definition at line 1747 of file std_code.h.

◆  to_side_effect_expr_function_call() [2/2]

side_effect_expr_function_callt & to_side_effect_expr_function_call ( exprtexpr )
inline

Definition at line 1739 of file std_code.h.

◆  to_side_effect_expr_nondet() [1/2]

const side_effect_expr_nondett & to_side_effect_expr_nondet ( const exprtexpr )
inline

Definition at line 1555 of file std_code.h.

◆  to_side_effect_expr_nondet() [2/2]

side_effect_expr_nondett & to_side_effect_expr_nondet ( exprtexpr )
inline

Definition at line 1548 of file std_code.h.

◆  to_side_effect_expr_statement_expression() [1/2]

const side_effect_expr_statement_expressiont & to_side_effect_expr_statement_expression ( const exprtexpr )
inline

Definition at line 1680 of file std_code.h.

◆  to_side_effect_expr_statement_expression() [2/2]

side_effect_expr_statement_expressiont & to_side_effect_expr_statement_expression ( exprtexpr )
inline

Definition at line 1669 of file std_code.h.

◆  to_side_effect_expr_throw() [1/2]

const side_effect_expr_throwt & to_side_effect_expr_throw ( const exprtexpr )
inline

Definition at line 1785 of file std_code.h.

◆  to_side_effect_expr_throw() [2/2]

side_effect_expr_throwt & to_side_effect_expr_throw ( exprtexpr )
inline

Definition at line 1778 of file std_code.h.

◆  validate_expr() [1/17]

void validate_expr ( const code_asm_gcctx )
inline

Definition at line 1368 of file std_code.h.

◆  validate_expr() [2/17]

void validate_expr ( const code_asserttx )
inline

Definition at line 299 of file std_code.h.

◆  validate_expr() [3/17]

void validate_expr ( const code_assumetx )
inline

Definition at line 246 of file std_code.h.

◆  validate_expr() [4/17]

void validate_expr ( const code_dowhiletx )
inline

Definition at line 711 of file std_code.h.

◆  validate_expr() [5/17]

void validate_expr ( const code_expressiontx )
inline

Definition at line 1423 of file std_code.h.

◆  validate_expr() [6/17]

void validate_expr ( const code_fortx )
inline

Definition at line 818 of file std_code.h.

◆  validate_expr() [7/17]

void validate_expr ( const code_frontend_assigntx )
inline

Definition at line 108 of file std_code.h.

◆  validate_expr() [8/17]

void validate_expr ( const code_frontend_decltx )
inline

Definition at line 424 of file std_code.h.

◆  validate_expr() [9/17]

void validate_expr ( const code_frontend_returntx )
inline

Definition at line 938 of file std_code.h.

◆  validate_expr() [10/17]

void validate_expr ( const code_gcc_switch_case_rangetx )
inline

Definition at line 1155 of file std_code.h.

◆  validate_expr() [11/17]

void validate_expr ( const code_gototx )
inline

Definition at line 870 of file std_code.h.

◆  validate_expr() [12/17]

void validate_expr ( const code_ifthenelsetx )
inline

Definition at line 525 of file std_code.h.

◆  validate_expr() [13/17]

void validate_expr ( const code_labeltx )
inline

Definition at line 999 of file std_code.h.

◆  validate_expr() [14/17]

void validate_expr ( const code_switch_casetx )
inline

Definition at line 1072 of file std_code.h.

◆  validate_expr() [15/17]

void validate_expr ( const code_switchtx )
inline

Definition at line 587 of file std_code.h.

◆  validate_expr() [16/17]

void validate_expr ( const code_try_catchtx )
inline

Definition at line 2045 of file std_code.h.

◆  validate_expr() [17/17]

void validate_expr ( const code_whiletx )
inline

Definition at line 649 of file std_code.h.

AltStyle によって変換されたページ (->オリジナル) /