[LLVMdev] [patch] Change llvm_unreachable to use __builtin_unreachable() in -asserts

Duncan Sands baldrick at free.fr
Sat Mar 12 02:17:27 PST 2011


Hi John,

> This patch implements the current consensus of PR8973:
> http://llvm.org/bugs/show_bug.cgi?id=8973.
>
> The macro llvm_unreachable is used in LLVM to indicate that
> a particular place in a function is not supposed to be reachable
> during execution. Like an assert macro, it takes a string
> argument. In +Asserts builds, this string argument, together with
> some location information, is passed to a function which prints
> the information and calls abort(). In -Asserts builds, this string
> argument is dropped (to minimize code size impact), and
> instead a bunch of zero arguments are passed to the same
> function.

I have to ask: what is the point of llvm_unreachable?  Why not just
use assert?

Ciao, Duncan.



More information about the llvm-dev mailing list