ASan was instrumenting none of the Flan half: it is an LLVM pass that only touches functions carrying sanitize_address, which clang's C frontend adds and hand-written IR does not. Globals get redzones either way, which is why it looked right. emit.ml puts the attribute on every define now, and a control asserts the report. UBSan reaches no Flan code and no flag changes that -- its checks are frontend-emitted branches, not a pass -- so shift UB and the NaN cast are not answerable this way. Left as a compiler question, pinned by a control that must not report.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%