Module Name: src
Committed By: rillig
Date: Wed Mar 17 15:37:42 UTC 2021
Modified Files:
src/usr.bin/xlint/lint1: init.c
Log Message:
lint: move debug logging for the designator to the top of the code
The debugging code is needed by the soon-to-be-added proper handling of
array subscript initializers such as '.member[123].member = 12345'.
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.89 -r1.90 src/usr.bin/xlint/lint1/init.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/xlint/lint1/init.c
diff -u src/usr.bin/xlint/lint1/init.c:1.89 src/usr.bin/xlint/lint1/init.c:1.90
--- src/usr.bin/xlint/lint1/init.c:1.89 Mon Feb 22 15:09:50 2021
+++ src/usr.bin/xlint/lint1/init.c Wed Mar 17 15:37:42 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: init.c,v 1.89 2021/02/22 15:09:50 rillig Exp $ */
+/* $NetBSD: init.c,v 1.90 2021/03/17 15:37:42 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.89 2021/02/22 15:09:50 rillig Exp $");
+__RCSID("$NetBSD: init.c,v 1.90 2021/03/17 15:37:42 rillig Exp $");
#endif
#include <stdlib.h>
@@ -146,12 +146,18 @@ namlist_t *namedmem = NULL;
static bool init_array_using_string(tnode_t *);
#ifndef DEBUG
+
#define debug_printf(fmt, ...) do { } while (false)
#define debug_indent() do { } while (false)
#define debug_enter(a) do { } while (false)
#define debug_step(fmt, ...) do { } while (false)
#define debug_leave(a) do { } while (false)
+#define debug_named_member() do { } while (false)
+#define debug_initstack_element(elem) do { } while (false)
+#define debug_initstack() do { } while (false)
+
#else
+
static int debug_ind = 0;
static void __printflike(1, 2)
@@ -194,52 +200,6 @@ debug_leave(const char *func)
printf("%*s- %s\n", 2 * --debug_ind, "", func);
}
-#define debug_enter() debug_enter(__func__)
-#define debug_leave() debug_leave(__func__)
-
-#endif
-
-void
-push_member(sbuf_t *sb)
-{
- namlist_t *nam = xcalloc(1, sizeof (namlist_t));
- nam->n_name = sb->sb_name;
-
- debug_step("%s: '%s' %p", __func__, nam->n_name, nam);
-
- if (namedmem == NULL) {
- /*
- * XXX: Why is this a circular list?
- * XXX: Why is this a doubly-linked list?
- * A simple stack should suffice.
- */
- nam->n_prev = nam->n_next = nam;
- namedmem = nam;
- } else {
- namedmem->n_prev->n_next = nam;
- nam->n_prev = namedmem->n_prev;
- nam->n_next = namedmem;
- namedmem->n_prev = nam;
- }
-}
-
-static void
-pop_member(void)
-{
- debug_step("%s: %s %p", __func__, namedmem->n_name, namedmem);
- if (namedmem->n_next == namedmem) {
- free(namedmem);
- namedmem = NULL;
- } else {
- namlist_t *nam = namedmem;
- namedmem = namedmem->n_next;
- nam->n_prev->n_next = nam->n_next;
- nam->n_next->n_prev = nam->n_prev;
- free(nam);
- }
-}
-
-#ifdef DEBUG
static void
debug_named_member(void)
{
@@ -256,11 +216,7 @@ debug_named_member(void)
} while (name != namedmem);
debug_printf("\n");
}
-#else
-#define debug_named_member() do { } while (false)
-#endif
-#ifdef DEBUG
static void
debug_initstack_element(const initstack_element *elem)
{
@@ -301,11 +257,52 @@ debug_initstack(void)
i++;
}
}
-#else
-#define debug_initstack_element(elem) do { } while (false)
-#define debug_initstack() do { } while (false)
+
+#define debug_enter() debug_enter(__func__)
+#define debug_leave() debug_leave(__func__)
+
#endif
+void
+push_member(sbuf_t *sb)
+{
+ namlist_t *nam = xcalloc(1, sizeof (namlist_t));
+ nam->n_name = sb->sb_name;
+
+ debug_step("%s: '%s' %p", __func__, nam->n_name, nam);
+
+ if (namedmem == NULL) {
+ /*
+ * XXX: Why is this a circular list?
+ * XXX: Why is this a doubly-linked list?
+ * A simple stack should suffice.
+ */
+ nam->n_prev = nam->n_next = nam;
+ namedmem = nam;
+ } else {
+ namedmem->n_prev->n_next = nam;
+ nam->n_prev = namedmem->n_prev;
+ nam->n_next = namedmem;
+ namedmem->n_prev = nam;
+ }
+}
+
+static void
+pop_member(void)
+{
+ debug_step("%s: %s %p", __func__, namedmem->n_name, namedmem);
+ if (namedmem->n_next == namedmem) {
+ free(namedmem);
+ namedmem = NULL;
+ } else {
+ namlist_t *nam = namedmem;
+ namedmem = namedmem->n_next;
+ nam->n_prev->n_next = nam->n_next;
+ nam->n_next->n_prev = nam->n_prev;
+ free(nam);
+ }
+}
+
/*
* Initialize the initialization stack by putting an entry for the object
* which is to be initialized on it.