Procdesc.Nodenode of the control flow graph
include Ppx_compare_lib.Comparable.S with type t := tval compare : t Base__Ppx_compare_lib.compareval hash_fold_id :
Ppx_hash_lib.Std.Hash.state ->
id ->
Ppx_hash_lib.Std.Hash.stateval hash_id : id -> Ppx_hash_lib.Std.Hash.hash_valuetype 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| ErlangCaseClause| ErlangExpression| 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| UnaryOperatorkind 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 stringkind of cfg node
val exn_handler_kind : nodekindkind of Stmt_node for an exception handler.
val exn_sink_kind : nodekindkind of Stmt_node for an exceptions sink.
val throw_kind : nodekindkind 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
Dump instructions for the node, highlighting the given subinstruction if present
val dummy : Procname.t -> tCreate a dummy node
val get_description : IStdlib.Pp.env -> t -> stringReturn a description of the node
val get_distance_to_exit : t -> int optionGet the distance to the exit node, if it has been computed
val get_instrs : t -> Instrs.not_reversed_tGet the instructions to be executed
val get_last_loc : t -> IBase.Location.tGet the source location of the last instruction in the node
Find in the given node or its predecessors
val get_loc : t -> IBase.Location.tGet the source location of the node
val get_proc_name : t -> Procname.tGet the name of the procedure the node belongs to
val get_wto_index : t -> intSet 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 -> boolReturns true if the node is dangling, i.e. no successors and predecessors
val pp : Stdlib.Format.formatter -> t -> unitPretty print the node
val pp_id : Stdlib.Format.formatter -> id -> unitPretty print a node id
val pp_stmt : Stdlib.Format.formatter -> stmt_nodekind -> unitval pp_with_instrs : ?print_types:bool -> Stdlib.Format.formatter -> t -> unitPretty print the node with instructions