Module Rte


module Rte: sig .. end
Runtime Error annotation generation plugin

val rte_prefix : string
val precond_prefix : string
module Int: Abstract_interp.Int
module RteGlobalTbl: sig .. end
module RteAnnotTbl: sig .. end
module PrecondAnnotTbl: sig .. end
val self : State.t
module type Generated = sig .. end
module GENERATED: 
functor (M : sig
val name : string
val default : Cil_types.kernel_function -> bool
end) ->
functor (Proxy : sig
val self : State.t
val get_state : Cil_types.kernel_function -> State.t
end) -> sig .. end
module RTEAnnot_Proxy: sig .. end
module PrecondAnnot_Proxy: sig .. end
module RTE_Signed_Generated: GENERATED(sig
val name : string
val default : Kernel_function.t -> bool
end)(RTEAnnot_Proxy)
module RTE_MemAccess_Generated: GENERATED(sig
val name : string
val default : Kernel_function.t -> bool
end)(RTEAnnot_Proxy)
module RTE_DivMod_Generated: GENERATED(sig
val name : string
val default : Kernel_function.t -> bool
end)(RTEAnnot_Proxy)
module RTE_DownCast_Generated: GENERATED(sig
val name : string
val default : Kernel_function.t -> bool
end)(RTEAnnot_Proxy)
module RTE_UnsignedOverflow_Generated: GENERATED(sig
val name : string
val default : Kernel_function.t -> bool
end)(RTEAnnot_Proxy)
module Called_Precond_Generated: GENERATED(sig
val name : string
val default : Kernel_function.t -> bool
end)(PrecondAnnot_Proxy)
val emit_status : Property.t -> Property_status.emitted_status option -> unit
module Parameter_map: sig .. end
module StateManager: sig .. end
val fmt_warn_no_valid_fptr_deref : ((Format.formatter -> Cil_types.lval -> unit) -> Cil_types.lval -> unit,
Format.formatter, unit, unit, unit, unit)
format6
val fmt_warn_bitsize_over_64 : ((Format.formatter -> Cil_types.exp -> unit) -> Cil_types.exp -> unit,
Format.formatter, unit, unit, unit, unit)
format6
val fmt_warn_bitsize_over_32 : ((Format.formatter -> Cil_types.exp -> unit) -> Cil_types.exp -> unit,
Format.formatter, unit, unit, unit, unit)
format6
val fmt_warn_bad_bitsize : ((Format.formatter -> Cil_types.exp -> unit) -> Cil_types.exp -> unit,
Format.formatter, unit, unit, unit, unit)
format6
val fmt_warn_shift_assert1 : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_warn_shift_assert2 : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_warn_shift_assert3 : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_warn_shift_assert4 : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_warn_signed_downcast_assert : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_unary_minus_assert : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_signed_overflow_assert : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_unsigned_overflow_assert : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val fmt_divisor_assert : ((Format.formatter -> Cil_types.predicate Cil_types.named -> unit) ->
Cil_types.predicate Cil_types.named -> unit, Format.formatter, unit,
unit, unit, unit)
format6
val rte_warn : ?source:Lexing.position ->
('a, Format.formatter, unit) Pervasives.format -> 'a
val translate_C_expr_to_term : ?cast:bool -> Cil_types.exp -> Cil_types.term
val get_expr_val : Cil_types.exp -> My_bigint.t option

type tOff =
| MyField of Cil_types.fieldinfo
| MyIndex of Cil_types.exp
val get_lval_assertion : Cil_types.lval -> (Cil_types.predicate Cil_types.named * 'a option) list
val assertion_le : Cil_types.term -> My_bigint.t -> Cil_types.predicate Cil_types.named
val assertion_ge : Cil_types.term -> My_bigint.t -> Cil_types.predicate Cil_types.named
val get_uminus_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_multsubadd_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
Cil_types.binop ->
Cil_types.exp ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_multsubadd_unsigned_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
Cil_types.binop ->
Cil_types.exp ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_divmod_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_signed_div_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_bitwise_lshift_unsigned_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
Cil_types.exp ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_bitwise_shift_right_operand_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list * bool
val get_bitwise_shift_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.exp ->
Cil_types.binop ->
Cil_types.exp ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list
val get_downcast_assertion : simplify_constants:bool ->
warning:bool ->
Cil_types.typ ->
Cil_types.exp ->
(Cil_types.predicate Cil_types.named * Property_status.emitted_status option)
list

type orig_lval =
| AddrOfOrig
| LvalOrig
val mk_term : Cil_types.term_node -> Cil_types.logic_type -> Cil_types.term
val find_term_to_replace : Cil_types.varinfo -> (Cil_types.varinfo * 'a) list -> 'a option
exception AddrOfFormal
exception NoResult
val tlval_fetcher_visitor : unit ->
< behavior : Cil.visitor_behavior; current_func : Cil_types.fundec option;
current_kinstr : Cil_types.kinstr; current_stmt : Cil_types.stmt option;
fetch_lvals : unit -> Cil_types.term list; fill_global_tables : unit;
get_filling_actions : (unit -> unit) Queue.t;
plain_copy_visitor : Cil.cilVisitor; pop_stmt : Cil_types.stmt -> unit;
push_stmt : Cil_types.stmt -> unit;
queueInstr : Cil_types.instr list -> unit;
reset_current_func : unit -> unit;
set_current_func : Cil_types.fundec -> unit;
unqueueInstr : unit -> Cil_types.instr list;
vannotation : Cil_types.global_annotation ->
Cil_types.global_annotation Cil.visitAction;
vassigns : Cil_types.identified_term Cil_types.assigns ->
Cil_types.identified_term Cil_types.assigns Cil.visitAction;
vattr : Cil_types.attribute -> Cil_types.attribute list Cil.visitAction;
vattrparam : Cil_types.attrparam -> Cil_types.attrparam Cil.visitAction;
vbehavior : Cil_types.funbehavior -> Cil_types.funbehavior Cil.visitAction;
vblock : Cil_types.block -> Cil_types.block Cil.visitAction;
vcode_annot : Cil_types.code_annotation ->
Cil_types.code_annotation Cil.visitAction;
vcompinfo : Cil_types.compinfo -> Cil_types.compinfo Cil.visitAction;
vdeps : Cil_types.identified_term Cil_types.deps ->
Cil_types.identified_term Cil_types.deps Cil.visitAction;
venuminfo : Cil_types.enuminfo -> Cil_types.enuminfo Cil.visitAction;
venumitem : Cil_types.enumitem -> Cil_types.enumitem Cil.visitAction;
vexpr : Cil_types.exp -> Cil_types.exp Cil.visitAction;
vfieldinfo : Cil_types.fieldinfo -> Cil_types.fieldinfo Cil.visitAction;
vfile : Cil_types.file -> Cil_types.file Cil.visitAction;
vfrom : Cil_types.identified_term Cil_types.from ->
Cil_types.identified_term Cil_types.from Cil.visitAction;
vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction;
vglob : Cil_types.global -> Cil_types.global list Cil.visitAction;
vimpact_pragma : Cil_types.term Cil_types.impact_pragma ->
Cil_types.term Cil_types.impact_pragma Cil.visitAction;
vinit : Cil_types.varinfo ->
Cil_types.offset ->
Cil_types.init -> Cil_types.init Cil.visitAction;
vinitoffs : Cil_types.offset -> Cil_types.offset Cil.visitAction;
vinst : Cil_types.instr -> Cil_types.instr list Cil.visitAction;
vlogic_ctor_info_decl : Cil_types.logic_ctor_info ->
Cil_types.logic_ctor_info Cil.visitAction;
vlogic_ctor_info_use : Cil_types.logic_ctor_info ->
Cil_types.logic_ctor_info Cil.visitAction;
vlogic_info_decl : Cil_types.logic_info ->
Cil_types.logic_info Cil.visitAction;
vlogic_info_use : Cil_types.logic_info ->
Cil_types.logic_info Cil.visitAction;
vlogic_label : Cil_types.logic_label ->
Cil_types.logic_label Cil.visitAction;
vlogic_type : Cil_types.logic_type -> Cil_types.logic_type Cil.visitAction;
vlogic_type_def : Cil_types.logic_type_def ->
Cil_types.logic_type_def Cil.visitAction;
vlogic_type_info_decl : Cil_types.logic_type_info ->
Cil_types.logic_type_info Cil.visitAction;
vlogic_type_info_use : Cil_types.logic_type_info ->
Cil_types.logic_type_info Cil.visitAction;
vlogic_var_decl : Cil_types.logic_var ->
Cil_types.logic_var Cil.visitAction;
vlogic_var_use : Cil_types.logic_var -> Cil_types.logic_var Cil.visitAction;
vloop_pragma : Cil_types.term Cil_types.loop_pragma ->
Cil_types.term Cil_types.loop_pragma Cil.visitAction;
vlval : Cil_types.lval -> Cil_types.lval Cil.visitAction;
voffs : Cil_types.offset -> Cil_types.offset Cil.visitAction;
vpredicate : Cil_types.predicate -> Cil_types.predicate Cil.visitAction;
vpredicate_named : Cil_types.predicate Cil_types.named ->
Cil_types.predicate Cil_types.named Cil.visitAction;
vquantifiers : Cil_types.quantifiers ->
Cil_types.quantifiers Cil.visitAction;
vslice_pragma : Cil_types.term Cil_types.slice_pragma ->
Cil_types.term Cil_types.slice_pragma Cil.visitAction;
vspec : Cil_types.funspec -> Cil_types.funspec Cil.visitAction;
vstmt : Cil_types.stmt -> Cil_types.stmt Cil.visitAction;
vterm : Cil_types.term -> Cil_types.term Cil.visitAction;
vterm_lhost : Cil_types.term_lhost -> Cil_types.term_lhost Cil.visitAction;
vterm_lval : Cil_types.term_lval -> Cil_types.term_lval Cil.visitAction;
vterm_node : Cil_types.term_node -> Cil_types.term_node Cil.visitAction;
vterm_offset : Cil_types.term_offset ->
Cil_types.term_offset Cil.visitAction;
vtype : Cil_types.typ -> Cil_types.typ Cil.visitAction;
vvdec : Cil_types.varinfo -> Cil_types.varinfo Cil.visitAction;
vvrbl : Cil_types.varinfo -> Cil_types.varinfo Cil.visitAction >
val treat_tlval : (Cil_types.varinfo * Cil_types.term) list ->
Cil_types.term_lval option ->
orig_lval ->
Cil_types.term_lhost * Cil_types.term_offset ->
Cil_types.term_node Cil.visitAction
val replacement_visitor : Cil_types.logic_label ->
(Cil_types.varinfo * Cil_types.term) list ->
Cil_types.term_lval option -> Cil.nopCilVisitor
val treat_pred : Cil_types.logic_label ->
Cil_types.predicate ->
(Cil_types.varinfo * Cil_types.term) list ->
Cil_types.term_lval option -> Cil_types.predicate
val treat_term : Cil_types.logic_label ->
Cil_types.term ->
(Cil_types.varinfo * Cil_types.term) list ->
Cil_types.term_lval option -> Cil_types.term

type skipCategory =
| SkipBounding
module SkipId: sig .. end
module SkipIdSet: Set.Make(SkipId)

type annotStmtPos =
| Before
| After
module H: Hashtbl
module HStmt: Cil_datatype.Stmt.Hashtbl
exception NontreatedAssign
exception DontKeep
class rte_annot_visitor : RteGlobalTbl.key -> object .. end
val remove_annotations_kf : Kernel_function.t -> unit
val is_computed_kf : StateManager.FuncOptionTbl.key -> bool
val annotate_kf_with : StateManager.FuncOptionTbl.key ->
Parameter_map.t -> Parameter_map.t -> unit
val do_precond : StateManager.FuncOptionTbl.key -> unit
val do_all_rte : StateManager.FuncOptionTbl.key -> unit
val annotate_kf : StateManager.FuncOptionTbl.key -> unit
val is_computed : unit -> bool
val compute : unit -> unit
module KF: sig .. end
module T: Datatype.Triple(State)(Datatype.Function(KF)(State))(Datatype.Function(KF)(Datatype.Bool))
module M1: RTE_Signed_Generated
module M2: RTE_MemAccess_Generated
module M3: RTE_DivMod_Generated
module M4: RTE_DownCast_Generated
module M5: Called_Precond_Generated
module M6: RTE_UnsignedOverflow_Generated
val get_all_status : unit ->
(State.t * (M1.key -> State.t) * (M1.key -> Datatype.Bool.t) *
(M1.key -> Datatype.Bool.t -> unit))
list
val get_precond_status : unit ->
State.t * (M5.key -> State.t) * (M5.key -> Datatype.Bool.t) *
(M5.key -> Datatype.Bool.t -> unit)
val get_signedOv_status : unit ->
State.t * (M1.key -> State.t) * (M1.key -> Datatype.Bool.t) *
(M1.key -> Datatype.Bool.t -> unit)
val get_divMod_status : unit ->
State.t * (M3.key -> State.t) * (M3.key -> Datatype.Bool.t) *
(M3.key -> Datatype.Bool.t -> unit)
val get_downCast_status : unit ->
State.t * (M4.key -> State.t) * (M4.key -> Datatype.Bool.t) *
(M4.key -> Datatype.Bool.t -> unit)
val get_memAccess_status : unit ->
State.t * (M2.key -> State.t) * (M2.key -> Datatype.Bool.t) *
(M2.key -> Datatype.Bool.t -> unit)
val get_unsignedOv_status : unit ->
State.t * (M6.key -> State.t) * (M6.key -> Datatype.Bool.t) *
(M6.key -> Datatype.Bool.t -> unit)
val get_global_state : Kernel_function.t -> State.t
val get_rte_state : Kernel_function.t -> State.t
val get_precond_state : Kernel_function.t -> State.t