Module Name: src
Committed By: rillig
Date: Tue Jul 6 19:08:28 UTC 2021
Modified Files:
src/usr.bin/xlint/lint1: cgram.y
Log Message:
lint: do not allow _Alignas (from C11) or __packed after a label
To generate a diff of this commit:
cvs rdiff -u -r1.261 -r1.262 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.261 src/usr.bin/xlint/lint1/cgram.y:1.262
--- src/usr.bin/xlint/lint1/cgram.y:1.261 Tue Jul 6 18:28:08 2021
+++ src/usr.bin/xlint/lint1/cgram.y Tue Jul 6 19:08:28 2021
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: cgram.y,v 1.261 2021/07/06 18:28:08 rillig Exp $ */
+/* $NetBSD: cgram.y,v 1.262 2021/07/06 19:08:28 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.261 2021/07/06 18:28:08 rillig Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.262 2021/07/06 19:08:28 rillig Exp $");
#endif
#include <limits.h>
@@ -123,7 +123,7 @@ anonymize(sym_t *s)
}
%}
-%expect 166
+%expect 164
%union {
val_t *y_val;
@@ -1407,7 +1407,7 @@ statement: /* C99 6.8 */
;
labeled_statement: /* C99 6.8.1 */
- label type_attribute_opt statement
+ label gcc_attribute_list_opt statement
;
label:
@@ -1976,8 +1976,6 @@ comma_opt:
/* GCC extensions */
-/* TODO: split into type_attribute and gcc_attribute */
-
type_attribute_list:
type_attribute
| type_attribute_list type_attribute
@@ -1992,6 +1990,16 @@ type_attribute:
| T_NORETURN
;
+gcc_attribute_list_opt:
+ /* empty */
+ | gcc_attribute_list
+ ;
+
+gcc_attribute_list:
+ gcc_attribute
+ | gcc_attribute_list gcc_attribute
+ ;
+
/* https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html */
gcc_attribute:
T_ATTRIBUTE T_LPAREN T_LPAREN {