From 2bf069698a384ff2bc62d2a10544d49d766b4d7f Mon Sep 17 00:00:00 2001 From: Eugene Syromyatnikov 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: