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

openSUSE Build Service is sponsored by