File 0983-erts-Silence-gcc-warning-array-out-of-bounds.patch of Package erlang
From a40cc630365fdfc1e9d44d77bd44e0fe25c4c7bd Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Fri, 16 Feb 2024 09:01:03 +0100
Subject: [PATCH 3/6] erts: Silence gcc warning array out of bounds
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In function ‘ethr_native_atomic32_cmpxchg_mb’,
inlined from ‘ethr_atomic32_cmpxchg_relb’ at ../include/internal/ethr_atomics.h:6835:27,
inlined from ‘erts_proc_unlock__’ at beam/erl_process_lock.h:779:17,
inlined from ‘erts_proc_unlock’ at beam/erl_process_lock.h:967:5,
inlined from ‘is_tracer_ref_enabled’ at beam/erl_trace.c:3060:17,
inlined from ‘trace_sched_ports_where’ at beam/erl_trace.c:2028:16:
../include/internal/i386/atomic.h:97:5: warning: array subscript 0 is outside array bounds of ‘ethr_atomic32_t[0]’ {aka ‘ethr_native_atomic32_t[]’} [-Warray-bounds]
97 | __asm__ __volatile__(
| ^~~~~~~
---
erts/emulator/beam/erl_trace.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/erts/emulator/beam/erl_trace.c b/erts/emulator/beam/erl_trace.c
index 2dd6c99d4c..8a66c9c790 100644
--- a/erts/emulator/beam/erl_trace.c
+++ b/erts/emulator/beam/erl_trace.c
@@ -2908,6 +2908,7 @@ is_tracer_enabled(Process* c_p, ErtsProcLocks c_p_locks,
ErtsProcLocks c_p_xlocks = 0;
if (esdp && !ERTS_SCHEDULER_IS_DIRTY(esdp)) {
if (is_internal_pid(t_p->id)) {
+ ERTS_ASSERT(c_p && "Silence GCC array out of bounds warning");
ERTS_LC_ASSERT(erts_proc_lc_my_proc_locks(c_p) & ERTS_PROC_LOCK_MAIN);
if (c_p_locks != ERTS_PROC_LOCKS_ALL) {
c_p_xlocks = ~c_p_locks & ERTS_PROC_LOCKS_ALL;
--
2.35.3