From cb6d02fe32b756c9d3c124cb5abb7f52c35f335a Mon Sep 17 00:00:00 2001 From: Josh Berdine <jjb@fb.com> Date: Mon, 20 May 2019 09:57:32 -0700 Subject: [PATCH] [sledge] Add Frontend.report_undefined Summary: Report undefined but used functions using `sledge.dbg -tFrontend.report_undefined`. Reviewed By: ngorogiannis Differential Revision: D15403365 fbshipit-source-id: 9f0fd3283 --- sledge/src/llair/frontend.ml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sledge/src/llair/frontend.ml b/sledge/src/llair/frontend.ml index 1a9276840..fbbd16248 100644 --- a/sledge/src/llair/frontend.ml +++ b/sledge/src/llair/frontend.ml @@ -1289,6 +1289,10 @@ let xlate_block : pop_thunk -> x -> Llvm.llbasicblock -> Llair.block list = |> [%Trace.retn fun {pf} blocks -> pf "%s" (List.hd_exn blocks).Llair.lbl] +let report_undefined func name = + if Option.is_some (Llvm.use_begin func) then + [%Trace.info "undefined function: %a" Global.pp name] + let xlate_function : x -> Llvm.llvalue -> Llair.func = fun x llf -> [%Trace.call fun {pf} -> pf "%a" pp_llvalue llf] @@ -1322,7 +1326,9 @@ let xlate_function : x -> Llvm.llvalue -> Llair.func = trav_blocks (List.rev entry_blocks) entry_blk in Llair.Func.mk ~name ~entry ~cfg - | At_end _ -> Llair.Func.mk_undefined ~name ~params ) + | At_end _ -> + report_undefined llf name ; + Llair.Func.mk_undefined ~name ~params ) |> [%Trace.retn fun {pf} -> pf "@\n%a" Llair.Func.pp]