Right again, I think you just found a bug, that will almost certainly be the system-clang. I'm still wondering by the way if clang is not just silently ignoring one of either sanitizers. Because I don't see any "reports" as I expected (perhaps I'm missing them). Maybe they need to be specified like this: `-fsanitize=address,undefined` as documented (`-f[no-]sanitize=check1,check2,...`).

Also I think it would be a good idea to at least turn on `-O1` for clang, as that will make it run more complicated kinds of analysis on the code as mentioned in the docs. It's the reason why one should define `-fno-omit-frame-pointer -fno-optimize-sibling-calls` so that things stay intelligible even under heavy optimization.