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: add debug logging for initializati...
details: https://anonhg.NetBSD.org/src/rev/c0e2f769ef43
branches: trunk
changeset: 979575:c0e2f769ef43
user: rillig <rillig%NetBSD.org@localhost>
date: Fri Jan 01 20:02:56 2021 +0000
description:
lint: add debug logging for initialization using named members
diffstat:
usr.bin/xlint/lint1/init.c | 35 ++++++++++++++++++++++++++++++++---
1 files changed, 32 insertions(+), 3 deletions(-)
diffs (72 lines):
diff -r f76c097d5424 -r c0e2f769ef43 usr.bin/xlint/lint1/init.c
--- a/usr.bin/xlint/lint1/init.c Fri Jan 01 19:28:51 2021 +0000
+++ b/usr.bin/xlint/lint1/init.c Fri Jan 01 20:02:56 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: init.c,v 1.54 2021/01/01 19:28:51 rillig Exp $ */
+/* $NetBSD: init.c,v 1.55 2021/01/01 20:02:56 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,10 +37,9 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: init.c,v 1.54 2021/01/01 19:28:51 rillig Exp $");
+__RCSID("$NetBSD: init.c,v 1.55 2021/01/01 20:02:56 rillig Exp $");
#endif
-#include <ctype.h>
#include <stdlib.h>
#include <string.h>
@@ -74,6 +73,19 @@
struct istk *i_next; /* previous level */
} istk_t;
+/*
+ * The names for a nested C99 initialization designator, in a circular list.
+ *
+ * Example:
+ * struct stat st = {
+ * .st_size = 123,
+ * .st_mtim.tv_sec = 45,
+ * .st_mtim.tv_nsec
+ * };
+ *
+ * During initialization, this list first contains ["st_size"], then
+ * ["st_mtim", "tv_sec"], then ["st_mtim", "tv_nsec"].
+ */
typedef struct namlist {
const char *n_name;
struct namlist *n_prev;
@@ -144,6 +156,21 @@
}
}
+static void
+named_member_dprint(void)
+{
+ namlist_t *name;
+
+ if (namedmem == NULL)
+ return;
+ name = namedmem;
+ DPRINTF(("named member:"));
+ do {
+ DPRINTF((" %s", name->n_name));
+ name = name->n_next;
+ } while (name != namedmem);
+ DPRINTF(("\n"));
+}
/*
* Initialize the initialisation stack by putting an entry for the variable
@@ -546,6 +573,8 @@
DPRINTF(("%s: type=%s, value=%s\n", __func__,
tyname(buf, sizeof(buf), tn->tn_type),
print_tnode(sbuf, sizeof(sbuf), tn)));
+ named_member_dprint();
+
if (initerr || tn == NULL)
return;
Home |
Main Index |
Thread Index |
Old Index