On Thu, Mar 19, 2020 at 12:45:50PM -0500, Josh Poimboeuf wrote: > > On Thu, Mar 19, 2020 at 12:33:31PM -0500, Josh Poimboeuf wrote: > > > Actually I suspect it's the __builtin_unreachable() annotation which is > > > making UBSAN add the __builtin_trap()... because I don't see any double > > > UD2s for WARNs. > Actually, removing __builtin_unreachable() *does* make the extra UD2 go > away -- I forgot I had some silly debug code. LOL, check this: "Built-in Function: void __builtin_unreachable (void) If control flow reaches the point of the __builtin_unreachable, the program is undefined. It is useful in situations where the compiler cannot deduce the unreachability of the code. " Which, I bet, is what makes UBSAN insert that __builtin_trap(). What a friggin mess :/