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| 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
val dummy : Procname.t -> tCreate a dummy node
val get_description : IStdlib.Pp.env -> t -> stringReturn a description of the node
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