On Tue, Dec 10, 2013 at 06:31:55PM -0800, Matt Turner wrote: > On Tue, Dec 10, 2013 at 5:55 PM, Francisco Jerez <curroje...@riseup.net> > wrote: > > It just seems annoying and unnecessary to me to have to repeat the same > > pattern before each use of unreachable(). If by definition the > > unreachable macro wants to be accompanied with an assert, why don't we > > save ourselves pain by having unreachable take care of both things you > > mentioned? > > > >> I don't particularly like the idea of modifying unreachable to take a > >> string to print. > > > > There's some precedent for this, see for example LLVM's unreachable > > macro [1]. It turns out that it does roughly what my proposed patch > > does: print an error message and abort on debug builds and call > > __builtin_unreachable() on release builds. > > > > [1] > > http://llvm.org/svn/llvm-project/llvm/trunk/include/llvm/Support/ErrorHandling.h > > Yeah, okay. I just looked through the kernel and didn't find any uses > of unreachable() combined with assert() or similar.
The kernel annotates fatal assert (i.e. BUG_ON and friends) already with the relevant no_return/unreachable stuff. So it'd do exactly what Fransisco suggested: You get the debug assert but also no false positive compiler warnings, even in release builds. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev