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 */

Reply via email to