File 0334-erts-Add-macros-for-suppressing-bogus-warnings.patch of Package erlang
From 615efd511c882d2933b6d0faf59652669e46fcfc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20H=C3=B6gberg?= <john@erlang.org>
Date: Fri, 26 Jul 2024 11:19:04 +0200
Subject: [PATCH 1/2] erts: Add macros for suppressing bogus warnings
---
erts/emulator/beam/sys.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h
index 90085e92e1..b066f708d3 100644
--- a/erts/emulator/beam/sys.h
+++ b/erts/emulator/beam/sys.h
@@ -177,6 +177,23 @@ typedef ERTS_SYS_FD_TYPE ErtsSysFdType;
# define ERTS_UNLIKELY(BOOL) (BOOL)
#endif
+#if (ERTS_AT_LEAST_GCC_VSN__(5, 1, 0) || __has_builtin(__builtin_unreachable))
+# define ERTS_UNREACHABLE __builtin_unreachable()
+#elif defined(_MSC_VER)
+# define ERTS_UNREACHABLE __assume(0)
+#else
+/* Unsupported compiler, just ignore it. */
+# define ERTS_UNREACHABLE ((void)0)
+#endif
+
+#if !defined(DEBUG)
+# define ERTS_ASSUME(Expr) ((Expr) ? \
+ (void)0 : \
+ (void)ERTS_UNREACHABLE)
+#else
+# define ERTS_ASSUME(Expr) ASSERT((Expr))
+#endif
+
/* AIX doesn't like this and claims section conflicts */
#if ERTS_AT_LEAST_GCC_VSN__(2, 96, 0) && !defined(_AIX)
#if (defined(__APPLE__) && defined(__MACH__)) || defined(__DARWIN__)
--
2.43.0