mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 23:56:57 +02:00
MINOR: compiler: also enable __builtin_assume() for ASSUME()
Clang apparently has __builtin_assume() which does exactly the same as our macro, since at least v3.8. Let's enable it, in case it may even better detect assumptions vs unreachable code.
This commit is contained in:
parent
efc897484b
commit
2ce63b7b17
@ -219,9 +219,11 @@
|
||||
* know that some conditions are not supposed to happen. This can only be used
|
||||
* with compilers that support it, and we do not want to emit any static code
|
||||
* for other ones, so we use a construct that the compiler should easily be
|
||||
* able to optimize away.
|
||||
* able to optimize away. Clang also has __builtin_assume() since at least 3.x.
|
||||
*/
|
||||
#if __has_builtin(__builtin_unreachable)
|
||||
#if __has_builtin(__builtin_assume)
|
||||
# define ASSUME(expr) __builtin_assume(expr)
|
||||
#elif __has_builtin(__builtin_unreachable)
|
||||
# define ASSUME(expr) do { if (!(expr)) __builtin_unreachable(); } while (0)
|
||||
#else
|
||||
# define ASSUME(expr) do { if (!(expr)) break; } while (0)
|
||||
|
Loading…
Reference in New Issue
Block a user