Module Name: src Committed By: christos Date: Fri Apr 18 21:54:53 UTC 2014
Modified Files: src/usr.bin/xlint/lint1: cgram.y Log Message: add more places where attribute is valid. To generate a diff of this commit: cvs rdiff -u -r1.62 -r1.63 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/usr.bin/xlint/lint1/cgram.y diff -u src/usr.bin/xlint/lint1/cgram.y:1.62 src/usr.bin/xlint/lint1/cgram.y:1.63 --- src/usr.bin/xlint/lint1/cgram.y:1.62 Thu Apr 17 22:41:17 2014 +++ src/usr.bin/xlint/lint1/cgram.y Fri Apr 18 17:54:52 2014 @@ -1,5 +1,5 @@ %{ -/* $NetBSD: cgram.y,v 1.62 2014/04/18 02:41:17 christos Exp $ */ +/* $NetBSD: cgram.y,v 1.63 2014/04/18 21:54:52 christos 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.62 2014/04/18 02:41:17 christos Exp $"); +__RCSID("$NetBSD: cgram.y,v 1.63 2014/04/18 21:54:52 christos Exp $"); #endif #include <stdlib.h> @@ -107,7 +107,7 @@ static inline void RESTORE(const char *f #endif %} -%expect 12 +%expect 71 %union { int y_int; @@ -531,6 +531,7 @@ declspecs: | declmods typespec { addtype($2); } + | type_attribute declspecs | declspecs type_attribute | declspecs declmod | declspecs notype_typespec { @@ -710,6 +711,7 @@ noclass_declspecs: clrtyp_typespec { addtype($1); } + | type_attribute noclass_declspecs | noclass_declmods typespec { addtype($2); } @@ -921,6 +923,9 @@ notype_direct_decl: | T_LPARN type_decl T_RPARN { $$ = $2; } + | type_attribute notype_direct_decl { + $$ = $2; + } | notype_direct_decl T_LBRACK T_RBRACK { $$ = addarray($1, 0, 0); } @@ -951,6 +956,9 @@ type_direct_decl: | T_LPARN type_decl T_RPARN { $$ = $2; } + | type_attribute type_direct_decl { + $$ = $2; + } | type_direct_decl T_LBRACK T_RBRACK { $$ = addarray($1, 0, 0); } @@ -1301,6 +1309,9 @@ direct_abs_decl: | T_LBRACK constant T_RBRACK { $$ = addarray(aname(), 1, toicon($2, 0)); } + | type_attribute direct_abs_decl { + $$ = $2; + } | direct_abs_decl T_LBRACK T_RBRACK { $$ = addarray($1, 0, 0); }