objtool: Rework ASM_REACHABLE
authorPeter Zijlstra <peterz@infradead.org>
Tue, 8 Mar 2022 15:30:49 +0000 (16:30 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 15 Mar 2022 09:32:44 +0000 (10:32 +0100)
commit0e5b613b4d4be3345dda349fb90dd73d2103302f
tree8c6a02510634e7c0046ae8bf34a5763979dd3c61
parent105cd68596392cfe15056a891b0723609dcad247
objtool: Rework ASM_REACHABLE

Currently ASM_REACHABLE only works for UD2 instructions; reorder
things to also allow over-riding dead_end_function().

To that end:

 - Mark INSN_BUG instructions in decode_instructions(), this saves
   having to iterate all instructions yet again.

 - Have add_call_destinations() set insn->dead_end for
   dead_end_function() calls.

 - Move add_dead_ends() *after* add_call_destinations() such that
   ASM_REACHABLE can clear the ->dead_end mark.

 - have validate_branch() only check ->dead_end.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154319.410010807@infradead.org
tools/objtool/check.c