noreturn

incomplete_block(Block:address)

This module performs an early noreturn analysis after code inference but before use-def analysis begins. It is intended to eliminate CFG edges that may otherwise produce spurious def_used instances.

direct_or_pcrel_jump(Src:address, Dest:address)

segment_target_range(Beg:address, End:address, Tmax:address)

The segment between [Beg,End] does not have any indirect targets or return instructions and all the direct targets are between Beg and Tmax

If End > Tmax, then we can say that the segment is self-contained, which means that the only way to step out of it is through a fallthrough in the last block

self_contained_segment(Beg:address, End:address)

no_return_block(EA:address, Reason:symbol)

No-return blocks.

This is a underapproximation, since it cannot propagate through jumptables or indirect calls (which are not yet resolved), or could call library functions that are not known to be no-return.

The only situation where it would generate false-positive noreturns is if a “known noreturn” library function does, in fact, return.

call_may_fallthrough_inter(Call:address, Func:address)

A function Func is called at instruction Call and the call may fall through to the next instruction interprocedurally. NOP or padding instructions may follow the call.

next_function_entry_initial(Func:address, NextFunc:address)

Represents the next initial function following Func (from function_entry_initial, before use-def and value analysis). NextFunc is the immediate successor of Func.

initial_function_containing_return(Func:address, ReturnEA:address)

An initial function (function_entry_initial, prior to use-def and value analysis) contains one or more return instructions. This is a heuristic and may generate false positives.

no_return_call_refined(EA:address)

Calls to known no return functions or their PLT blocks.

call_target_has_other_fallthrough_inter(Call:address, CallTarget:address)

A call Call targets a function CallTarget that has another call-site which falls through interprocedurally.

no_return_call_propagated(EA:address, Reason:symbol)

Calls to noreturn blocks.