File 2532-erts-Silence-maybe-used-uninitialized-warnings.patch of Package erlang
From 6480e73507cd7e7ae962dfbe7c6c7a194fd76903 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 21 Oct 2024 14:20:27 +0200
Subject: [PATCH 2/2] erts: Silence "maybe used uninitialized" warnings
---
erts/emulator/beam/bif.c | 9 ++++-----
erts/emulator/beam/erl_db_tree.c | 4 ++++
erts/emulator/beam/erl_nif.c | 1 +
erts/emulator/beam/erl_proc_sig_queue.c | 2 ++
erts/emulator/beam/erl_rbtree.h | 1 +
erts/emulator/beam/erl_trace.c | 8 ++++----
6 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c
index 5709df04b2..61dfb65dde 100644
--- a/erts/emulator/beam/bif.c
+++ b/erts/emulator/beam/bif.c
@@ -2757,7 +2757,6 @@ BIF_RETTYPE make_tuple_3(BIF_ALIST_3)
{
Sint n;
Uint limit;
- Eterm* hp;
Eterm res;
Eterm list = BIF_ARG_3;
Eterm* tup = NULL;
@@ -2770,13 +2769,13 @@ BIF_RETTYPE make_tuple_3(BIF_ALIST_3)
if (n == 0) {
res = ERTS_GLOBAL_LIT_EMPTY_TUPLE;
} else {
- hp = HAlloc(BIF_P, n+1);
+ Eterm* hp = HAlloc(BIF_P, n+1);
res = make_tuple(hp);
*hp++ = make_arityval(n);
tup = hp;
- }
- while (n--) {
- *hp++ = BIF_ARG_2;
+ while (n--) {
+ *hp++ = BIF_ARG_2;
+ }
}
while(is_list(list)) {
Eterm* cons;
diff --git a/erts/emulator/beam/erl_db_tree.c b/erts/emulator/beam/erl_db_tree.c
index 9714851ca6..63d73fa892 100644
--- a/erts/emulator/beam/erl_db_tree.c
+++ b/erts/emulator/beam/erl_db_tree.c
@@ -3043,6 +3043,9 @@ static TreeDbTerm *slot_search(Process *p, TreeDbTerm *root,
TreeDbTerm **pp;
DbTreeStack* stack;
+#ifdef DEBUG
+ lastobj = (TreeDbTerm*)1;
+#endif
if (iter) {
/* Find first non-empty tree */
while (!root) {
@@ -3134,6 +3137,7 @@ next_root:
}
ASSERT(slot > stack->slot);
+ ASSERT(lastobj != (TreeDbTerm*)1);
if (lastobj) {
lastkey = GETKEY(tb, lastobj->dbterm.tpl);
lastobj = NULL;
diff --git a/erts/emulator/beam/erl_nif.c b/erts/emulator/beam/erl_nif.c
index fd627ade11..5072cd8612 100644
--- a/erts/emulator/beam/erl_nif.c
+++ b/erts/emulator/beam/erl_nif.c
@@ -5707,6 +5707,7 @@ static void dbg_assert_in_env(ErlNifEnv* env, Eterm term,
{
Uint saved_used_size;
Eterm* real_htop;
+ ERTS_UNDEF(saved_used_size, 0);
if (is_immed(term)
|| (is_non_value(term) && env->exception_thrown)
diff --git a/erts/emulator/beam/erl_rbtree.h b/erts/emulator/beam/erl_rbtree.h
index 3767239da2..217e137cf0 100644
--- a/erts/emulator/beam/erl_rbtree.h
+++ b/erts/emulator/beam/erl_rbtree.h
@@ -1387,6 +1387,7 @@ ERTS_RBT_FUNC__(foreach_unordered__)(ERTS_RBT_T **root,
while (1) {
#ifdef ERTS_RBT_DEBUG
int cdir;
+ ERTS_UNDEF(cdir,0);
#endif
if (yielding && reds <= 0) {
ystate->x = x;
--
2.43.0