]> granicus.if.org Git - graphviz/commit
avoid use of '__builtin_unreachable' in 'UNREACHABLE' macro
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 10 Mar 2022 02:57:17 +0000 (18:57 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 12 Mar 2022 23:48:46 +0000 (15:48 -0800)
commit65af215162f87099f949b31c5c401152e70a0914
treebf247677edf4750d550fb6f79e906739214306d7
parentc0c255ece7007645dd1fda9361788f23d59081b5
avoid use of '__builtin_unreachable' in 'UNREACHABLE' macro

There was some discussion on !2503¹ around the effect of `__builtin_unreachable`
and whether we are really confident applying such a strong compiler hint to
complex control flow logic that is, in some cases, only partially understood.
This change softens the effect of the `UNREACHABLE` macro to a reliable program
abort rather than undefined behavior if mistakenly tagged unreachable code is
reached. The result is slightly less efficient but safer code.

¹ https://gitlab.com/graphviz/graphviz/-/merge_requests/2503#note_866261546
lib/cgraph/unreachable.h