Module Name: src Committed By: rillig Date: Tue Sep 14 19:06:27 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: decl_direct_abstract.c decl_direct_abstract.exp src/usr.bin/xlint/lint1: cgram.y Log Message: lint: support int[*][3] from C99 No warning in pre-C99 mode since this declarator is not used in practice anyway. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint1/decl_direct_abstract.c \ src/tests/usr.bin/xlint/lint1/decl_direct_abstract.exp cvs rdiff -u -r1.362 -r1.363 src/usr.bin/xlint/lint1/cgram.y 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/decl_direct_abstract.c diff -u src/tests/usr.bin/xlint/lint1/decl_direct_abstract.c:1.2 src/tests/usr.bin/xlint/lint1/decl_direct_abstract.c:1.3 --- src/tests/usr.bin/xlint/lint1/decl_direct_abstract.c:1.2 Tue Sep 14 19:02:15 2021 +++ src/tests/usr.bin/xlint/lint1/decl_direct_abstract.c Tue Sep 14 19:06:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl_direct_abstract.c,v 1.2 2021/09/14 19:02:15 rillig Exp $ */ +/* $NetBSD: decl_direct_abstract.c,v 1.3 2021/09/14 19:06:27 rillig Exp $ */ # 3 "decl_direct_abstract.c" /* @@ -64,8 +64,7 @@ double type_of_c99_6_7_6_example_h = c99 void int_array(int[]); void int_array_3(int[3]); -/* TODO: support this in direct_abstract_declarator */ -/* expect+1: syntax error ']' [249] */ +/* supported since cgram.y 1.362 from 2021-09-14 */ void int_array_ast(int[*]); /* expect+1: error: null dimension [17] */ void int_array_7_array(int[7][]); @@ -75,6 +74,5 @@ void int_array_7_array_ast(int[7][*]); void int_array_array(int[][7]); void int_array_3_array(int[3][7]); -/* TODO: support this in direct_abstract_declarator */ -/* expect+1: syntax error ']' [249] */ +/* supported since cgram.y 1.362 from 2021-09-14 */ void int_array_ast_array(int[*][7]); Index: src/tests/usr.bin/xlint/lint1/decl_direct_abstract.exp diff -u src/tests/usr.bin/xlint/lint1/decl_direct_abstract.exp:1.2 src/tests/usr.bin/xlint/lint1/decl_direct_abstract.exp:1.3 --- src/tests/usr.bin/xlint/lint1/decl_direct_abstract.exp:1.2 Tue Sep 14 19:02:15 2021 +++ src/tests/usr.bin/xlint/lint1/decl_direct_abstract.exp Tue Sep 14 19:06:27 2021 @@ -8,7 +8,5 @@ decl_direct_abstract.c(56): error: canno decl_direct_abstract.c(59): error: cannot initialize 'double' from 'pointer to function(void) returning void' [185] decl_direct_abstract.c(61): error: cannot initialize 'double' from 'pointer to function(pointer to function(void) returning int) returning void' [185] decl_direct_abstract.c(63): error: cannot initialize 'double' from 'pointer to function(pointer to const pointer to function(unsigned int, ...) returning int) returning void' [185] -decl_direct_abstract.c(69): error: syntax error ']' [249] -decl_direct_abstract.c(71): error: null dimension [17] -decl_direct_abstract.c(74): error: null dimension [17] -decl_direct_abstract.c(80): error: syntax error ']' [249] +decl_direct_abstract.c(70): error: null dimension [17] +decl_direct_abstract.c(73): error: null dimension [17] Index: src/usr.bin/xlint/lint1/cgram.y diff -u src/usr.bin/xlint/lint1/cgram.y:1.362 src/usr.bin/xlint/lint1/cgram.y:1.363 --- src/usr.bin/xlint/lint1/cgram.y:1.362 Mon Sep 13 06:11:51 2021 +++ src/usr.bin/xlint/lint1/cgram.y Tue Sep 14 19:06:27 2021 @@ -1,5 +1,5 @@ %{ -/* $NetBSD: cgram.y,v 1.362 2021/09/13 06:11:51 rillig Exp $ */ +/* $NetBSD: cgram.y,v 1.363 2021/09/14 19:06:27 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: cgram.y,v 1.362 2021/09/13 06:11:51 rillig Exp $"); +__RCSID("$NetBSD: cgram.y,v 1.363 2021/09/14 19:06:27 rillig Exp $"); #endif #include <limits.h> @@ -1410,7 +1410,10 @@ direct_abstract_declarator: | T_LBRACK T_RBRACK { $$ = add_array(abstract_name(), false, 0); } - /* TODO: T_LBRACK T_ASTERISK T_RBRACK; see below */ + | T_LBRACK T_ASTERISK T_RBRACK { + /* since C99 */ + $$ = add_array(abstract_name(), false, 0); + } | T_LBRACK array_size T_RBRACK { $$ = add_array(abstract_name(), true, to_int_constant($2, false)); @@ -1421,7 +1424,8 @@ direct_abstract_declarator: | direct_abstract_declarator T_LBRACK T_RBRACK { $$ = add_array($1, false, 0); } - | direct_abstract_declarator T_LBRACK T_ASTERISK T_RBRACK { /* C99 */ + | direct_abstract_declarator T_LBRACK T_ASTERISK T_RBRACK { + /* since C99 */ $$ = add_array($1, false, 0); } | direct_abstract_declarator T_LBRACK array_size T_RBRACK {