Procdesc.Node
node of the control flow graph
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
val hash_fold_id :
Ppx_hash_lib.Std.Hash.state ->
id ->
Ppx_hash_lib.Std.Hash.state
val hash_id : id -> Ppx_hash_lib.Std.Hash.hash_value
type stmt_nodekind =
| AssertionFailure
| AtomicCompareExchangeBranch
| AtomicExpr
| BetweenJoinAndExit
| BinaryConditionalStmtInit
| BinaryOperatorStmt of string
| Call of string
| CallObjCNew
| CaseStmt
| ClassCastException
| CompoundStmt
| ConditionalStmtBranch
| ConstructorInit
| CXXDynamicCast
| CXXNewExpr
| CXXStdInitializerListExpr
| CXXTemporaryMarkerSet
| CXXTry
| CXXTypeidExpr
| DeclStmt
| DefineBody
| Destruction of destruction_kind
| Erlang
| ExceptionHandler
| ExceptionsSink
| ExprWithCleanups
| FinallyBranch
| GCCAsmStmt
| GenericSelectionExpr
| IfStmtBranch
| InitializeDynamicArrayLength
| InitListExp
| LoopBody
| LoopIterIncr
| LoopIterInit
| MessageCall of string
| MethodBody
| MonitorEnter
| MonitorExit
| ObjCCPPThrow
| ObjCIndirectCopyRestoreExpr
| OutOfBound
| ReturnStmt
| Scope of string
| Skip
| SwitchStmt
| ThisNotNull
| Throw
| ThrowNPE
| UnaryOperator
kind of statement node
type nodekind =
| Start_node
| Exit_node
| Stmt_node of stmt_nodekind
| Join_node
| Prune_node of bool * Sil.if_kind * prune_node_kind
(true/false branch, if_kind, comment)
*)| Skip_node of string
kind of cfg node
val exn_handler_kind : nodekind
kind of Stmt_node for an exception handler.
val exn_sink_kind : nodekind
kind of Stmt_node for an exceptions sink.
val throw_kind : nodekind
kind of Stmt_node for a throw instruction.
Append the instructions to the list of instructions to execute
Prepend the instructions to the list of instructions to execute
val dummy : Procname.t -> t
Create a dummy node
val get_description : IStdlib.Pp.env -> t -> string
Return a description of the node
val get_instrs : t -> Instrs.not_reversed_t
Get the instructions to be executed
val get_last_loc : t -> IBase.Location.t
Get the source location of the last instruction in the node
Find in the given node or its predecessors
val get_loc : t -> IBase.Location.t
Get the source location of the node
val get_proc_name : t -> Procname.t
Get the name of the procedure the node belongs to
val get_wto_index : t -> int
Set an exit node corresponding to a start node of a code block. Using this, when there is a code block, frontend can keep the correspondence between start/exit nodes of a code block.
val is_dangling : t -> bool
Returns true if the node is dangling, i.e. no successors and predecessors
val pp : Stdlib.Format.formatter -> t -> unit
Pretty print the node
val pp_id : Stdlib.Format.formatter -> id -> unit
Pretty print a node id
val pp_stmt : Stdlib.Format.formatter -> stmt_nodekind -> unit
val pp_with_instrs : ?print_types:bool -> Stdlib.Format.formatter -> t -> unit
Pretty print the node with instructions