Sometimes Clang arm64 code jumps to the end of the function for UB.
No need to make that an error, arm64 doesn't reverse engineer the CFG
anyway.

Signed-off-by: Josh Poimboeuf <[email protected]>
---
 tools/objtool/check.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index f73cf1382e5c..23cde2de66b9 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1630,10 +1630,12 @@ static int add_jump_destinations(struct objtool_file 
*file)
                        /*
                         * GCOV/KCOV dead code can jump to the end of
                         * the function/section.
+                        *
+                        * Clang on arm64 also does this sometimes for
+                        * undefined behavior.
                         */
-                       if (file->ignore_unreachables && func &&
-                           dest_sec == insn->sec &&
-                           dest_off == func->offset + func->len)
+                       if ((file->ignore_unreachables || (!opts.stackval && 
!opts.orc)) &&
+                           func && dest_sec == insn->sec && dest_off == 
func->offset + func->len)
                                continue;
 
                        ERROR_INSN(insn, "can't find jump dest instruction at 
%s",
-- 
2.53.0


Reply via email to