Blob Blame History Raw
From 2bf069698a384ff2bc62d2a10544d49d766b4d7f Mon Sep 17 00:00:00 2001
From: Eugene Syromyatnikov <evgsyr@gmail.com>
Date: Mon, 27 Jun 2022 18:00:17 +0200
Subject: [PATCH] src/xlat: remove remnants of unnecessary idx usage in xlookup

As there is no idx saving between calls anymore, there's no need to use
(and update) idx in the XT_SORTED case.  Reported by clang as a dead store:

    Error: CLANG_WARNING:
    strace-5.18/src/xlat.c:84:4: warning[deadcode.DeadStores]: Value stored to 'idx' is never read

* src/xlat.c (xlookup): Remove idx declaration;  declare idx inside
of the for loop in the XT_NORMAL case; do not offset x->data and x->size
by offs in the XT_SORTED case and do not update idx upon successful
lookup.

Complements: v5.15~164 "xlat: no longer interpret NULL xlat as continuation"
---
 src/xlat.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Index: strace-5.18/src/xlat.c
===================================================================
--- strace-5.18.orig/src/xlat.c	2022-07-12 17:11:52.660927011 +0200
+++ strace-5.18/src/xlat.c	2022-07-12 17:16:18.116794139 +0200
@@ -61,7 +61,6 @@
 const char *
 xlookup(const struct xlat *x, const uint64_t val)
 {
-	size_t idx = 0;
 	const struct xlat_data *e;
 
 	if (!x || !x->data)
@@ -69,21 +68,18 @@
 
 	switch (x->type) {
 	case XT_NORMAL:
-		for (; idx < x->size; idx++)
+		for (size_t idx = 0; idx < x->size; idx++)
 			if (x->data[idx].val == val)
 				return x->data[idx].str;
 		break;
 
 	case XT_SORTED:
 		e = bsearch((const void *) &val,
-			    x->data + idx,
-			    x->size - idx,
+			    x->data, x->size,
 			    sizeof(x->data[0]),
 			    xlat_bsearch_compare);
-		if (e) {
-			idx = e - x->data;
+		if (e)
 			return e->str;
-		}
 		break;
 
 	case XT_INDEXED: