A call without a !dbg inside a function that has debug info is a hard LLVM rejection, not a warning — it turns every debug build into a clang error. So is a DISubprogram the compile unit does not reach. Neither is visible to an assertion about the text of the module, and both are the kind of thing that appears when this file grows a new call from somewhere other than a Tast node. The program the cases run through is chosen for those calls specifically: a bounds check, a condition signalled and handled, a restart transferred to, a defer on the way out. Every one of them is a call the backend invents. Emit.redefinition is the half that needed this. It had only ever run at the default debug:false, and it differs from Emit.program in exactly the places metadata goes wrong: hidden bodies, the by-name cell and global lookups, and flan_reload_install and flan_reload_call, which are raw defines with no subprogram that nonetheless contain calls. Both directions of `known' are covered, because they emit almost entirely different code.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%