Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/xlint/lint1 lint: split initstack_pop_item into sepa...



details:   https://anonhg.NetBSD.org/src/rev/5535b3157324
branches:  trunk
changeset: 960424:5535b3157324
user:      rillig <rillig%NetBSD.org@localhost>
date:      Fri Mar 19 00:19:32 2021 +0000

description:
lint: split initstack_pop_item into separate functions

No functional change.

diffstat:

 usr.bin/xlint/lint1/init.c |  106 +++++++++++++++++++++++++-------------------
 1 files changed, 59 insertions(+), 47 deletions(-)

diffs (142 lines):

diff -r 43210432122d -r 5535b3157324 usr.bin/xlint/lint1/init.c
--- a/usr.bin/xlint/lint1/init.c        Fri Mar 19 00:08:13 2021 +0000
+++ b/usr.bin/xlint/lint1/init.c        Fri Mar 19 00:19:32 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: init.c,v 1.100 2021/03/19 00:08:13 rillig Exp $        */
+/*     $NetBSD: init.c,v 1.101 2021/03/19 00:19:32 rillig Exp $        */
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: init.c,v 1.100 2021/03/19 00:08:13 rillig Exp $");
+__RCSID("$NetBSD: init.c,v 1.101 2021/03/19 00:19:32 rillig Exp $");
 #endif
 
 #include <stdlib.h>
@@ -410,59 +410,44 @@
 }
 
 static void
-initstack_pop_item(void)
+initstack_pop_item_named_member(void)
 {
-       initstack_element *istk;
-       sym_t   *m;
+       initstack_element *istk = initstk;
+       sym_t *m;
 
-       debug_enter();
-
-       istk = initstk;
-       debug_step("popping:");
-       debug_initstack_element(istk);
+       debug_step("initializing named member '%s'", namedmem->n_name);
 
-       initstk = istk->i_enclosing;
-       free(istk);
-       istk = initstk;
-       lint_assert(istk != NULL);
+       lint_assert(istk->i_type->t_tspec == STRUCT ||
+           istk->i_type->t_tspec == UNION);
+       for (m = istk->i_type->t_str->sou_first_member;
+            m != NULL; m = m->s_next) {
 
-       istk->i_remaining--;
-       lint_assert(istk->i_remaining >= 0);
-       debug_step("%d elements remaining", istk->i_remaining);
-
-       if (namedmem != NULL) {
-               debug_step("initializing named member '%s'", namedmem->n_name);
+               if (m->s_bitfield && m->s_name == unnamed)
+                       continue;
 
-               lint_assert(istk->i_type->t_tspec == STRUCT ||
-                   istk->i_type->t_tspec == UNION);
-               for (m = istk->i_type->t_str->sou_first_member;
-                    m != NULL; m = m->s_next) {
-
-                       if (m->s_bitfield && m->s_name == unnamed)
-                               continue;
+               if (strcmp(m->s_name, namedmem->n_name) == 0) {
+                       debug_step("found matching member");
+                       istk->i_subt = m->s_type;
+                       /* XXX: why ++? */
+                       istk->i_remaining++;
+                       /* XXX: why is i_seen_named_member not set? */
+                       pop_member();
+                       return;
+               }
+       }
 
-                       if (strcmp(m->s_name, namedmem->n_name) == 0) {
-                               debug_step("found matching member");
-                               istk->i_subt = m->s_type;
-                               /* XXX: why ++? */
-                               istk->i_remaining++;
-                               /* XXX: why is i_seen_named_member not set? */
-                               pop_member();
-                               debug_initstack();
-                               debug_leave();
-                               return;
-                       }
-               }
+       /* undefined struct/union member: %s */
+       error(101, namedmem->n_name);
 
-               /* undefined struct/union member: %s */
-               error(101, namedmem->n_name);
+       pop_member();
+       istk->i_seen_named_member = true;
+}
 
-               pop_member();
-               istk->i_seen_named_member = true;
-               debug_initstack();
-               debug_leave();
-               return;
-       }
+static void
+initstack_pop_item_unnamed(void)
+{
+       initstack_element *istk = initstk;
+       sym_t *m;
 
        /*
         * If the removed element was a structure member, we must go
@@ -480,6 +465,33 @@
                /* XXX: duplicate code for skipping unnamed bit-fields */
                istk->i_subt = m->s_type;
        }
+}
+
+static void
+initstack_pop_item(void)
+{
+       initstack_element *istk;
+
+       debug_enter();
+
+       istk = initstk;
+       debug_step("popping:");
+       debug_initstack_element(istk);
+
+       initstk = istk->i_enclosing;
+       free(istk);
+       istk = initstk;
+       lint_assert(istk != NULL);
+
+       istk->i_remaining--;
+       lint_assert(istk->i_remaining >= 0);
+       debug_step("%d elements remaining", istk->i_remaining);
+
+       if (namedmem != NULL)
+               initstack_pop_item_named_member();
+       else
+               initstack_pop_item_unnamed();
+
        debug_initstack();
        debug_leave();
 }



Home | Main Index | Thread Index | Old Index