Module Name: src Committed By: rillig Date: Wed Aug 11 05:19:33 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: gcc_attribute_var.c gcc_attribute_var.exp src/usr.bin/xlint/lint1: cgram.y Log Message: lint: allow GCC __attribute__ after array brackets GCC accepts this, so should lint. Seen in pam_lastlog.c:115. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/gcc_attribute_var.c \ src/tests/usr.bin/xlint/lint1/gcc_attribute_var.exp cvs rdiff -u -r1.354 -r1.355 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/gcc_attribute_var.c diff -u src/tests/usr.bin/xlint/lint1/gcc_attribute_var.c:1.4 src/tests/usr.bin/xlint/lint1/gcc_attribute_var.c:1.5 --- src/tests/usr.bin/xlint/lint1/gcc_attribute_var.c:1.4 Wed Aug 11 05:08:35 2021 +++ src/tests/usr.bin/xlint/lint1/gcc_attribute_var.c Wed Aug 11 05:19:33 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: gcc_attribute_var.c,v 1.4 2021/08/11 05:08:35 rillig Exp $ */ +/* $NetBSD: gcc_attribute_var.c,v 1.5 2021/08/11 05:19:33 rillig Exp $ */ # 3 "gcc_attribute_var.c" /* @@ -65,8 +65,6 @@ ambiguity_for_attribute(void) void attribute_after_array_brackets( - /* FIXME: GCC accepts this */ - /* expect+1: error: syntax error '__attribute__' [249] */ const char *argv[] __attribute__((__unused__)) ) { Index: src/tests/usr.bin/xlint/lint1/gcc_attribute_var.exp diff -u src/tests/usr.bin/xlint/lint1/gcc_attribute_var.exp:1.4 src/tests/usr.bin/xlint/lint1/gcc_attribute_var.exp:1.5 --- src/tests/usr.bin/xlint/lint1/gcc_attribute_var.exp:1.4 Wed Aug 11 05:08:35 2021 +++ src/tests/usr.bin/xlint/lint1/gcc_attribute_var.exp Wed Aug 11 05:19:33 2021 @@ -1,3 +1,2 @@ gcc_attribute_var.c(59): warning: 'var2' unused in function 'ambiguity_for_attribute' [192] -gcc_attribute_var.c(70): error: syntax error '__attribute__' [249] -gcc_attribute_var.c(77): error: syntax error 'syntax_error' [249] +gcc_attribute_var.c(75): error: syntax error 'syntax_error' [249] Index: src/usr.bin/xlint/lint1/cgram.y diff -u src/usr.bin/xlint/lint1/cgram.y:1.354 src/usr.bin/xlint/lint1/cgram.y:1.355 --- src/usr.bin/xlint/lint1/cgram.y:1.354 Sun Aug 1 19:18:10 2021 +++ src/usr.bin/xlint/lint1/cgram.y Wed Aug 11 05:19:32 2021 @@ -1,5 +1,5 @@ %{ -/* $NetBSD: cgram.y,v 1.354 2021/08/01 19:18:10 rillig Exp $ */ +/* $NetBSD: cgram.y,v 1.355 2021/08/11 05:19:32 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.354 2021/08/01 19:18:10 rillig Exp $"); +__RCSID("$NetBSD: cgram.y,v 1.355 2021/08/11 05:19:32 rillig Exp $"); #endif #include <limits.h> @@ -1292,10 +1292,11 @@ direct_param_declarator: | T_LPAREN notype_param_declarator T_RPAREN { $$ = $2; } - | direct_param_declarator T_LBRACK T_RBRACK { + | direct_param_declarator T_LBRACK T_RBRACK gcc_attribute_list_opt { $$ = add_array($1, false, 0); } - | direct_param_declarator T_LBRACK array_size T_RBRACK { + | direct_param_declarator T_LBRACK array_size T_RBRACK + gcc_attribute_list_opt { $$ = add_array($1, true, to_int_constant($3, false)); } | direct_param_declarator param_list asm_or_symbolrename_opt {