On Fri, Mar 17, 2023 at 11:35 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > I really really detest this thing, and I think this is a fatal flaw, > and means that as-is, UBSAN really *has* to be disabled for clang > kernel builds. Maybe that will make somebody wake up and smell the > roses, and stop this idiotic "undefined behavior is fatal" garbage. Btw, this is not at all kernel-centric, even if the kernel may be special in not necessarily being able to log things on fatal issues. Imagine you are a database vendor, and you cannot replicate something that a user sees, and the user is not willing to give you their database, and you worry that it might be some undefined thing. Are you going to ship the user a test-build that might die in the middle, and thus be unable to actually show the behavior in any half-way production setting? Would any sane user run that pile of garbage on their machines, knowing that any error would be fatal and result in their production database being broken? So any compiler person that says "undefined behavior can do anything at all according to the standard, so we're compliant with that" is an incompetent person, and shouldn't be let near a real compiler. Debug support *MUST* have an option to just continue. Sure, make "this is fatal" be an option *too*, because if you are a developer, maybe you really want the "fail hard, fail quickly" behavior. But that fatal option cannot be the *only* choice, or we cannot use said debug code in the kernel. Linus