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.4.0.tbz
    
    
        
    
  
  
  
    
  
  
    
  
        sha256=99b78e6def71534d195eef9084baa26d8334b36084e120aa6afb300c9bf8afa6
    
    
  sha512=f3162bd95a03c00358a2991f6152fc6169205bfb4c55e2c483e98cc3935673df9656d025b6f1ea0fa5f1bd0aee037d4f483966b0d2907e3fa9bf11a93a3392af
    
    
  doc/goblint.lib/Goblint_lib/AccessAnalysis/Spec/index.html
Module AccessAnalysis.Spec
Access analyzer without base --- this is the new standard
include module type of struct include Analyses.DefaultSpec end
module P = Analyses.UnitPval asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'aval skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'aval sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'aval paths_as_set : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a listmodule A = Analyses.UnitAmodule D = Lattice.Unitmodule V : sig ... endmodule G = AccessDomain.EventSetval collect_local : bool refval emit_single_threaded : bool refval do_access : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  AccessKind.t ->
  bool ->
  GoblintCil.exp ->
  unitval access_one_top : 
  ?force:bool ->
  ?deref:bool ->
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  AccessKind.t ->
  bool ->
  CilType.Exp.t ->
  unitThree access levels:
deref=false,reach=false- Accessexpwithout dereferencing, used for all normal reads and all function call arguments.deref=true,reach=false- Accessexpby dereferencing once (may-point-to), used for lval writes and shallow special accesses.deref=true,reach=true- Accessexpby dereferencing transitively (reachable), used for deep special accesses.
Transfer functions:
val vdecl : (D.t, G.t, C.t, V.t) Analyses.ctx -> GoblintCil.varinfo -> D.tval assign : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval ->
  CilType.Exp.t ->
  D.tval branch : (D.t, G.t, C.t, V.t) Analyses.ctx -> CilType.Exp.t -> 'a -> D.tval return : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  CilType.Exp.t option ->
  'a ->
  D.tval body : (D.t, 'a, 'b, 'c) Analyses.ctx -> 'd -> D.tval special : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval option ->
  GoblintCil.Cil.varinfo ->
  CilType.Exp.t list ->
  D.tval enter : 
  (D.t, 'a, 'b, 'c) Analyses.ctx ->
  'd ->
  'e ->
  'f ->
  (D.t * D.t) listval combine_env : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  'a ->
  CilType.Exp.t ->
  'b ->
  CilType.Exp.t list ->
  'c ->
  'd ->
  'e ->
  'dval combine_assign : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval option ->
  'a ->
  'b ->
  'c ->
  'd ->
  'e ->
  'f ->
  D.tval threadspawn : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  multiple:'a ->
  GoblintCil.lval option ->
  'b ->
  'c ->
  'd ->
  D.tval query : 
  ('b, G.t, 'c, MyCFG.node) Analyses.ctx ->
  'a Queries.t ->
  'a Queries.resultval event : (unit, G.t, 'a, MyCFG.node) Analyses.ctx -> Events.t -> 'b -> unit sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >