package goblint
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Static analysis framework for C
Install
dune-project
Dependency
Authors
Maintainers
Sources
goblint-2.0.0.tbz
sha256=2f4f2e25b765452f0e336941f35f6cb396d7c213a2d347abe5d35febc5159b1f
sha512=e96af4cad91f6985c8db93c194925853e96cad0ec1a0d9f4d32bbe16d3e5fa1e305f54be02839f21ba89ad2af0c2d5d7aa819ade221ce097dc4dbd0fcd8c8500
doc/goblint.lib/Goblint_lib/CompareCIL/index.html
Module Goblint_lib.CompareCIL
include module type of struct include CompareAST end
include module type of struct include CompareCFG end
include module type of struct include CompareAST end
val compare_global_type :
global_type ->
global_type ->
Ppx_deriving_runtime.intval compare_global_identifier :
global_identifier ->
global_identifier ->
Ppx_deriving_runtime.intmodule StringMap = Goblint_lib.CompareCFG.StringMaptype method_rename_assumption = CompareAST.method_rename_assumption = {original_method_name : string;new_method_name : string;parameter_renames : string StringMap.t;
}type method_rename_assumptions = method_rename_assumption CilMaps.VarinfoMap.ttype rename_mapping = string StringMap.t * method_rename_assumptionsval rename_mapping_aware_name_comparison :
string ->
string ->
rename_mapping ->
boolval rename_mapping_to_string : rename_mapping -> stringval identifier_of_global : GoblintCil.global -> global_identifiermodule GlobalMap = Goblint_lib.CompareCFG.GlobalMapval eq_constant :
rename_mapping ->
GoblintCil.constant ->
GoblintCil.constant ->
boolval eq_exp2 : rename_mapping -> GoblintCil.exp -> GoblintCil.exp -> boolval eq_exp : GoblintCil.exp -> GoblintCil.exp -> rename_mapping -> boolval eq_lhost : GoblintCil.lhost -> GoblintCil.lhost -> rename_mapping -> boolval global_typ_acc : (GoblintCil.typ * GoblintCil.typ) list refval eq_typ_acc :
GoblintCil.typ ->
GoblintCil.typ ->
(GoblintCil.typ * GoblintCil.typ) list ->
rename_mapping ->
boolval eq_typ : GoblintCil.typ -> GoblintCil.typ -> rename_mapping -> boolval eq_eitems :
rename_mapping ->
(string * GoblintCil.exp * GoblintCil.location) BatOrd.eqval eq_enuminfo :
GoblintCil.enuminfo ->
GoblintCil.enuminfo ->
rename_mapping ->
boolval eq_args :
rename_mapping ->
(GoblintCil.typ * GoblintCil.typ) list ->
(string * GoblintCil.typ * GoblintCil.attributes) BatOrd.eqval eq_attrparam : rename_mapping -> GoblintCil.attrparam BatOrd.eqval eq_attribute : rename_mapping -> GoblintCil.attribute BatOrd.eqval eq_varinfo2 :
rename_mapping ->
GoblintCil.varinfo ->
GoblintCil.varinfo ->
boolval eq_varinfo :
GoblintCil.varinfo ->
GoblintCil.varinfo ->
rename_mapping ->
boolval eq_compinfo :
GoblintCil.compinfo ->
GoblintCil.compinfo ->
(GoblintCil.typ * GoblintCil.typ) list ->
rename_mapping ->
boolval eq_fieldinfo :
GoblintCil.fieldinfo ->
GoblintCil.fieldinfo ->
(GoblintCil.typ * GoblintCil.typ) list ->
rename_mapping ->
boolval eq_offset :
GoblintCil.offset ->
GoblintCil.offset ->
rename_mapping ->
boolval eq_lval : GoblintCil.lval -> GoblintCil.lval -> rename_mapping -> boolval eq_instr : rename_mapping -> GoblintCil.instr -> GoblintCil.instr -> boolval eq_stmtkind :
?cfg_comp:bool ->
(GoblintCil.stmtkind * GoblintCil.fundec) ->
(GoblintCil.stmtkind * GoblintCil.fundec) ->
rename_mapping ->
boolval eq_stmt :
?cfg_comp:bool ->
(GoblintCil.stmt * GoblintCil.fundec) ->
(GoblintCil.stmt * GoblintCil.fundec) ->
rename_mapping ->
boolval eq_block :
(GoblintCil.block * GoblintCil.fundec) ->
(GoblintCil.block * GoblintCil.fundec) ->
rename_mapping ->
boolval eq_init : GoblintCil.init -> GoblintCil.init -> rename_mapping -> boolval eq_initinfo :
GoblintCil.initinfo ->
GoblintCil.initinfo ->
rename_mapping ->
boolval eq_node :
(MyCFG.node * GoblintCil.fundec) ->
(MyCFG.node * GoblintCil.fundec) ->
boolval eq_edge : MyCFG.edge -> MyCFG.edge -> boolval eq_edge_list : MyCFG.edge list -> MyCFG.edge list -> boolmodule NH = CompareCFG.NHtype biDirectionNodeMap = CompareCFG.biDirectionNodeMap = {node1to2 : MyCFG.node NH.t;node2to1 : MyCFG.node NH.t;
}val compareCfgs :
(module MyCFG.CfgForward) ->
(module MyCFG.CfgForward) ->
GoblintCil.fundec ->
GoblintCil.fundec ->
biDirectionNodeMap * unit NH.tval reexamine :
'a ->
CilType.Fundec.t ->
biDirectionNodeMap ->
unit NH.t ->
(module MyCFG.CfgForward) ->
(module MyCFG.CfgBidir) ->
(NH.key * MyCFG.node) Seq.t * NH.key Seq.tval compareFun :
(module MyCFG.CfgForward) ->
(module MyCFG.CfgBidir) ->
GoblintCil.fundec ->
GoblintCil.fundec ->
(NH.key * MyCFG.node) list * NH.key listtype nodes_diff = {unchangedNodes : (MyCFG.node * MyCFG.node) list;primObsoleteNodes : MyCFG.node list;(*primary obsolete nodes -> all obsolete nodes are reachable from these
*)
}For semantically unchanged globals, still keep old and current version of global for resetting current to old.
type changed_global = {old : GoblintCil.global;current : GoblintCil.global;unchangedHeader : bool;diff : nodes_diff option;
}module VarinfoSet : sig ... endtype change_info = {mutable changed : changed_global list;mutable unchanged : unchanged_global list;mutable removed : GoblintCil.global list;mutable added : GoblintCil.global list;mutable exclude_from_rel_destab : VarinfoSet.t;(*Set of functions that are to be force-reanalyzed. These functions are additionally included in the
*)changedfield, among the other changed globals.
}val empty_change_info : unit -> change_infoval unchanged_to_change_status : bool -> change_statusGiven a boolean that indicates whether the code object is identical to the previous version, returns the corresponding change_status
val eqF :
GoblintCil.Cil.fundec ->
GoblintCil.Cil.fundec ->
(MyCFG.cfg * (MyCFG.cfg * MyCFG.cfg)) option ->
method_rename_assumptions ->
change_status * nodes_diff optionval eq_glob :
GoblintCil.global ->
GoblintCil.global ->
(MyCFG.cfg * (MyCFG.cfg * MyCFG.cfg)) option ->
method_rename_assumptions ->
change_status * nodes_diff optionval compareCilFiles :
?eq:
(GoblintCil.global ->
GoblintCil.global ->
(MyCFG.cfg * (MyCFG.cfg * MyCFG.cfg)) option ->
method_rename_assumptions ->
change_status * nodes_diff option) ->
GoblintCil.file ->
GoblintCil.file ->
change_infoGiven an (optional) equality function between Cil.globals, an old and a new Cil.file, this function computes a change_info, which describes which globals are changed, unchanged, removed and added.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>