Module Name: src
Committed By: rillig
Date: Sun Jul 25 19:05:27 UTC 2021
Modified Files:
src/tests/usr.bin/xlint/lint1: gcc_attribute_type.c
gcc_attribute_type.exp
src/usr.bin/xlint/lint1: cgram.y
Log Message:
lint: reorder grammar rules
First the base cases, then the extensions, like in most other rules in
this file.
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/gcc_attribute_type.c \
src/tests/usr.bin/xlint/lint1/gcc_attribute_type.exp
cvs rdiff -u -r1.342 -r1.343 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_type.c
diff -u src/tests/usr.bin/xlint/lint1/gcc_attribute_type.c:1.1 src/tests/usr.bin/xlint/lint1/gcc_attribute_type.c:1.2
--- src/tests/usr.bin/xlint/lint1/gcc_attribute_type.c:1.1 Tue Jul 6 17:33:07 2021
+++ src/tests/usr.bin/xlint/lint1/gcc_attribute_type.c Sun Jul 25 19:05:27 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: gcc_attribute_type.c,v 1.1 2021/07/06 17:33:07 rillig Exp $ */
+/* $NetBSD: gcc_attribute_type.c,v 1.2 2021/07/25 19:05:27 rillig Exp $ */
# 3 "gcc_attribute_type.c"
/*
@@ -7,6 +7,8 @@
* https://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html
*/
+struct __attribute__((__packed__)) __attribute__(()) packed_record;
+
struct __attribute__((__packed__)) packed_record {
unsigned char len[2];
unsigned long magic;
Index: src/tests/usr.bin/xlint/lint1/gcc_attribute_type.exp
diff -u src/tests/usr.bin/xlint/lint1/gcc_attribute_type.exp:1.1 src/tests/usr.bin/xlint/lint1/gcc_attribute_type.exp:1.2
--- src/tests/usr.bin/xlint/lint1/gcc_attribute_type.exp:1.1 Tue Jul 6 17:33:07 2021
+++ src/tests/usr.bin/xlint/lint1/gcc_attribute_type.exp Sun Jul 25 19:05:27 2021
@@ -1 +1 @@
-gcc_attribute_type.c(29): error: syntax error 'syntax_error' [249]
+gcc_attribute_type.c(31): error: syntax error 'syntax_error' [249]
Index: src/usr.bin/xlint/lint1/cgram.y
diff -u src/usr.bin/xlint/lint1/cgram.y:1.342 src/usr.bin/xlint/lint1/cgram.y:1.343
--- src/usr.bin/xlint/lint1/cgram.y:1.342 Sun Jul 25 18:48:47 2021
+++ src/usr.bin/xlint/lint1/cgram.y Sun Jul 25 19:05:27 2021
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: cgram.y,v 1.342 2021/07/25 18:48:47 rillig Exp $ */
+/* $NetBSD: cgram.y,v 1.343 2021/07/25 19:05: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.342 2021/07/25 18:48:47 rillig Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.343 2021/07/25 19:05:27 rillig Exp $");
#endif
#include <limits.h>
@@ -650,7 +650,8 @@ expression_opt:
/* 'conditional_expression' also implements 'logical_OR_expression'. */
/* K&R ???, C90 ???, C99 6.5.5 to 6.5.15, C11 6.5.5 to 6.5.15 */
conditional_expression:
- conditional_expression T_ASTERISK conditional_expression {
+ cast_expression
+ | conditional_expression T_ASTERISK conditional_expression {
$$ = build_binary($1, MULT, $3);
}
| conditional_expression T_MULTIPLICATIVE conditional_expression {
@@ -687,7 +688,7 @@ conditional_expression:
T_COLON conditional_expression {
$$ = build_binary($1, QUEST, build_binary($3, COLON, $5));
}
- | cast_expression;
+ ;
/* K&R ???, C90 ???, C99 6.5.16, C11 6.5.16 */
assignment_expression:
@@ -911,14 +912,14 @@ struct_or_union_specifier: /* C99 6.7.2.
;
struct_or_union: /* C99 6.7.2.1 */
- struct_or_union type_attribute
- | T_STRUCT_OR_UNION {
+ T_STRUCT_OR_UNION {
symtyp = FTAG;
begin_declaration_level($1 == STRUCT ? MOS : MOU);
dcs->d_offset = 0;
dcs->d_sou_align_in_bits = CHAR_SIZE;
$$ = $1;
}
+ | struct_or_union type_attribute
;
braced_struct_declaration_list: /* see C99 6.7.2.1 */