[Mesa-dev] [PATCH 1/2] util: Make unreachable at least be an assert

Matt Turner mattst88 at gmail.com
Fri Dec 5 13:42:53 PST 2014


On Fri, Dec 5, 2014 at 1:25 PM, Ian Romanick <idr at freedesktop.org> wrote:
> On 12/05/2014 01:17 PM, Carl Worth wrote:
>> Previously, if __builtin_unreachable() was unavailable, the
>> unreachable macro was defined to do nothing. We do better here, by at
>> least still making it an assert.
>> ---
>>  src/util/macros.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/util/macros.h b/src/util/macros.h
>> index 5fc6729..eec8b93 100644
>> --- a/src/util/macros.h
>> +++ b/src/util/macros.h
>> @@ -82,7 +82,7 @@ do {                        \
>>  #endif
>>
>>  #ifndef unreachable
>> -#define unreachable(str)
>> +#define unreachable(str) assert(!str)
>
> I'd make this ASSERT.  In Mesa, ASSERT only exists if DEBUG is defined.
>  It seems that many distros build without -DDEBUG and without -DNDEBUG.
>  I'd rather have no code for these cases in all release builds.

I'm surprised by that.

I see that we add -DDEBUG with --enable-debug, but from experience
assert() does nothing in my regular release build (without
--enable-debug). Where is NDEBUG coming from in that case? I don't see
it in the macros gcc automatically defines (gcc -g -dM -E - <
/dev/null).


More information about the mesa-dev mailing list