You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/framework/analyses.ml
+1-103Lines changed: 1 addition & 103 deletions
Original file line number
Diff line number
Diff line change
@@ -262,108 +262,6 @@ sig
262
262
valevent : (D.t, G.t, C.t, V.t) man -> Events.t -> (D.t, G.t, C.t, V.t) man -> D.t
263
263
end
264
264
265
-
(* module type BackwSpec =
266
-
sig
267
-
module D : Lattice.S
268
-
module G : Lattice.S
269
-
module C : Printable.S
270
-
module V: SpecSysVar (** Global constraint variables. *)
271
-
module P: DisjointDomain.Representative with type elt := D.t (** Path-representative. *)
272
-
273
-
module D_forw: Lattice.S
274
-
module G_forw: Lattice.S
275
-
module V_forw: SpecSysVar (** Global constraint variables. *)
276
-
module P_forw: DisjointDomain.Representative with type elt := D_forw.t (** Path-representative. *)
277
-
val name : unit -> string
278
-
279
-
(** Auxiliary data (outside of solution domains) that needs to be marshaled and unmarshaled.
280
-
This includes:
281
-
* hashtables,
282
-
* varinfos (create_var),
283
-
* RichVarinfos. *)
284
-
type marshal
285
-
286
-
(** Initialize using unmarshaled auxiliary data (if present). *)
287
-
val init : marshal option -> unit
288
-
289
-
(** Finalize and return auxiliary data to be marshaled. *)
290
-
val finalize : unit -> marshal
291
-
(* val finalize : G.t -> unit *)
292
-
293
-
val startstate : varinfo -> D.t
294
-
val morphstate : varinfo -> D.t -> D.t
295
-
val exitstate : varinfo -> D.t
296
-
297
-
val context: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> fundec -> D.t -> C.t
298
-
val startcontext: unit -> C.t
299
-
300
-
val sync : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> [`Normal | `Join | `JoinCall of CilType.Fundec.t | `Return] -> D.t
301
-
val query : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> 'a Queries.t -> 'a Queries.result
302
-
303
-
(** A transfer function which handles the assignment of a rval to a lval, i.e.,
304
-
it handles program points of the form "lval = rval;" *)
305
-
val assign: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval -> exp -> D.t
306
-
307
-
(** A transfer function used for declaring local variables.
308
-
By default only for variable-length arrays (VLAs). *)
309
-
val vdecl : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> varinfo -> D.t
310
-
311
-
(** A transfer function which handles conditional branching yielding the
312
-
truth value passed as a boolean argument *)
313
-
val branch: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> exp -> bool -> D.t
314
-
315
-
(** A transfer function which handles going from the start node of a function (fundec) into
316
-
its function body. Meant to handle, e.g., initialization of local variables *)
317
-
val body : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> fundec -> D.t
318
-
319
-
(** A transfer function which handles the return statement, i.e.,
320
-
"return exp" or "return" in the passed function (fundec) *)
321
-
val return: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> exp option -> fundec -> D.t
322
-
323
-
(** A transfer function meant to handle inline assembler program points *)
324
-
val asm : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> D.t
325
-
326
-
(** A transfer function which works as the identity function, i.e., it skips and does nothing.
327
-
Used for empty loops. *)
328
-
val skip : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> D.t
329
-
330
-
(** A transfer function which, for a call to a {e special} function f "lval = f(args)" or "f(args)",
331
-
computes the caller state after the function call *)
332
-
val special : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval option -> varinfo -> exp list -> D.t
333
-
334
-
(** For a function call "lval = f(args)" or "f(args)",
335
-
[enter] returns a caller state, and the initial state of the callee.
336
-
In [enter], the caller state can usually be returned unchanged, as [combine_env] and [combine_assign] (below)
337
-
will compute the caller state after the function call, given the return state of the callee *)
338
-
val enter : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval option -> fundec -> exp list -> (D.t * D.t) list
0 commit comments