Module Name: src Committed By: rillig Date: Sun Feb 21 14:19:27 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: d_c99_init.c src/usr.bin/xlint/common: tyname.c src/usr.bin/xlint/lint1: init.c Log Message: lint: add debug logging for initializing an array of unknown size It is possible that the type name 'array[unknown_size]' may spill into the user-visible diagnostics. The current test suite does not cover such a case. Anyway, saying 'array[unknown_size]' is still better than saying 'array[0]', which would be misleading. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/d_c99_init.c cvs rdiff -u -r1.30 -r1.31 src/usr.bin/xlint/common/tyname.c cvs rdiff -u -r1.84 -r1.85 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/tests/usr.bin/xlint/lint1/d_c99_init.c diff -u src/tests/usr.bin/xlint/lint1/d_c99_init.c:1.5 src/tests/usr.bin/xlint/lint1/d_c99_init.c:1.6 --- src/tests/usr.bin/xlint/lint1/d_c99_init.c:1.5 Sun Feb 21 13:10:57 2021 +++ src/tests/usr.bin/xlint/lint1/d_c99_init.c Sun Feb 21 14:19:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: d_c99_init.c,v 1.5 2021/02/21 13:10:57 rillig Exp $ */ +/* $NetBSD: d_c99_init.c,v 1.6 2021/02/21 14:19:27 rillig Exp $ */ # 3 "d_c99_init.c" /* @@ -50,3 +50,6 @@ initialization_with_redundant_braces(any // FIXME: message 185 needs to be reworded to "cannot initialize '%s' from '%s'". use(&arg); } + +// See initstack_push, 'extending array of unknown size'. +const int primes[] = { 2, 3, 5, 7, 9 }; Index: src/usr.bin/xlint/common/tyname.c diff -u src/usr.bin/xlint/common/tyname.c:1.30 src/usr.bin/xlint/common/tyname.c:1.31 --- src/usr.bin/xlint/common/tyname.c:1.30 Sun Feb 21 10:28:32 2021 +++ src/usr.bin/xlint/common/tyname.c Sun Feb 21 14:19:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tyname.c,v 1.30 2021/02/21 10:28:32 rillig Exp $ */ +/* $NetBSD: tyname.c,v 1.31 2021/02/21 14:19:27 rillig Exp $ */ /*- * Copyright (c) 2005 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: tyname.c,v 1.30 2021/02/21 10:28:32 rillig Exp $"); +__RCSID("$NetBSD: tyname.c,v 1.31 2021/02/21 14:19:27 rillig Exp $"); #endif #include <limits.h> @@ -366,7 +366,14 @@ type_name(const type_t *tp) buf_add(&buf, " of "); buf_add(&buf, type_name(tp->t_subt)); buf_add(&buf, "["); +#ifdef t_str /* lint1 */ + if (tp->t_incomplete_array) + buf_add(&buf, "unknown_size"); + else + buf_add_int(&buf, tp->t_dim); +#else buf_add_int(&buf, tp->t_dim); +#endif buf_add(&buf, "]"); break; case FUNC: Index: src/usr.bin/xlint/lint1/init.c diff -u src/usr.bin/xlint/lint1/init.c:1.84 src/usr.bin/xlint/lint1/init.c:1.85 --- src/usr.bin/xlint/lint1/init.c:1.84 Sun Feb 21 14:02:36 2021 +++ src/usr.bin/xlint/lint1/init.c Sun Feb 21 14:19:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: init.c,v 1.84 2021/02/21 14:02:36 rillig Exp $ */ +/* $NetBSD: init.c,v 1.85 2021/02/21 14:19:27 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.84 2021/02/21 14:02:36 rillig Exp $"); +__RCSID("$NetBSD: init.c,v 1.85 2021/02/21 14:19:27 rillig Exp $"); #endif #include <stdlib.h> @@ -466,16 +466,18 @@ initstack_push(void) /* Extend an incomplete array type by one element */ if (istk->i_remaining == 0) { - debug_step("(extend) %s", type_name(istk->i_type)); /* * Inside of other aggregate types must not be an incomplete * type. */ lint_assert(istk->i_enclosing->i_enclosing == NULL); - istk->i_remaining = 1; lint_assert(istk->i_type->t_tspec == ARRAY); + debug_step("extending array of unknown size '%s'", + type_name(istk->i_type)); + istk->i_remaining = 1; istk->i_type->t_dim++; setcomplete(istk->i_type, true); + debug_step("extended type is '%s'", type_name(istk->i_type)); } lint_assert(istk->i_remaining > 0);