From 4f3824743f50808a0079e6057107de53c4a25f22 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 19 Sep 2021 07:34:53 -0700 Subject: [PATCH] Simplify wordsplit code a bit These changes pacify gcc -Wanalyzer-null-dereference on x86-64 gcc 11.2.1 20210728 (Red Hat 11.2.1-1). * lib/wordsplit.c (wsnode_tail): Remove unnecessary test. (coalesce_segment): Coalesce calls to wsnode_len. --- lib/wordsplit.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/wordsplit.c b/lib/wordsplit.c index cf8a4990..97d89c9c 100644 --- a/lib/wordsplit.c +++ b/lib/wordsplit.c @@ -472,7 +472,7 @@ wsnode_remove (struct wordsplit *wsp, struct wordsplit_node *node) static struct wordsplit_node * wsnode_tail (struct wordsplit_node *p) { - while (p && p->next) + while (p->next) p = p->next; return p; } @@ -573,15 +573,15 @@ coalesce_segment (struct wordsplit *wsp, struct wordsplit_node *node) char *buf, *cur; int stop; - if (!(node->flags & _WSNF_JOIN)) - return 0; - - for (p = node; p && (p->flags & _WSNF_JOIN); p = p->next) + for (p = node; p->flags & _WSNF_JOIN; ) { len += wsnode_len (p); + p = p->next; + if (!p) + break; } - if (p) - len += wsnode_len (p); + if (p == node) + return 0; end = p; buf = malloc (len + 1); -- 2.47.3