https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63839

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok, so inlining introduces __builtin_unreachable () during inlining of a
noreturn call.  Then at some point somebody folds that statement (forwprop) and
ubsan
instrumentation triggers via fold_builtin_0.

Now - BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE requires virtual operands
but BUILT_IN_UNREACHABLE is const.  Thus this folding breaks virtual
SSA form - which folding may not do.

And kaboom, simplify_builtin_call doesn't expect broken virtual SSA form.

It seems that this "randomly" instrumenting late introduced
__builtin_unreachable()s is broken.  Instrumenting via folding is anyway IMHO.

Reply via email to