winpthreads: Use __assume(0) MSVC builtin for unreachable code https://learn.microsoft.com/en-us/cpp/intrinsics/assume?view=msvc-170 Signed-off-by: Antonin Décimo <antonin@tarides.com> Signed-off-by: Martin Storsjö <martin@martin.st>
diff --git a/mingw-w64-libraries/winpthreads/src/misc.h b/mingw-w64-libraries/winpthreads/src/misc.h index d590af4..7e226f4 100644 --- a/mingw-w64-libraries/winpthreads/src/misc.h +++ b/mingw-w64-libraries/winpthreads/src/misc.h
@@ -119,4 +119,10 @@ #define unlikely(cond) (cond) #endif +#if defined(__GNUC__) || defined(__clang__) +#define UNREACHABLE() __builtin_unreachable() +#elif defined(_MSC_VER) +#define UNREACHABLE() __assume(0) +#endif + #endif
diff --git a/mingw-w64-libraries/winpthreads/src/mutex.c b/mingw-w64-libraries/winpthreads/src/mutex.c index fc29341..5142198 100644 --- a/mingw-w64-libraries/winpthreads/src/mutex.c +++ b/mingw-w64-libraries/winpthreads/src/mutex.c
@@ -99,7 +99,7 @@ } else { /* mi cannot be null here; avoid a test in the fast path. */ if (mi == NULL) - __builtin_unreachable(); + UNREACHABLE(); return mi; } }