Module Name: src Committed By: rillig Date: Thu Jul 15 19:51:29 UTC 2021
Modified Files: src/distrib/sets/lists/tests: mi src/tests/usr.bin/xlint/lint1: Makefile decl_struct_member.c decl_struct_member.exp Added Files: src/tests/usr.bin/xlint/lint1: decl_struct_c90.c decl_struct_c90.exp Log Message: tests/lint: test struct declarations To generate a diff of this commit: cvs rdiff -u -r1.1089 -r1.1090 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.90 -r1.91 src/tests/usr.bin/xlint/lint1/Makefile cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint1/decl_struct_c90.c \ src/tests/usr.bin/xlint/lint1/decl_struct_c90.exp cvs rdiff -u -r1.6 -r1.7 src/tests/usr.bin/xlint/lint1/decl_struct_member.c cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/decl_struct_member.exp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.1089 src/distrib/sets/lists/tests/mi:1.1090 --- src/distrib/sets/lists/tests/mi:1.1089 Thu Jul 15 17:09:08 2021 +++ src/distrib/sets/lists/tests/mi Thu Jul 15 19:51:29 2021 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1089 2021/07/15 17:09:08 rillig Exp $ +# $NetBSD: mi,v 1.1090 2021/07/15 19:51:29 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -6218,6 +6218,8 @@ ./usr/tests/usr.bin/xlint/lint1/decl.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/decl_arg.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/decl_arg.exp tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/xlint/lint1/decl_struct_c90.c tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/xlint/lint1/decl_struct_c90.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/decl_struct_member.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/decl_struct_member.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/emit.c tests-usr.bin-tests compattestfile,atf Index: src/tests/usr.bin/xlint/lint1/Makefile diff -u src/tests/usr.bin/xlint/lint1/Makefile:1.90 src/tests/usr.bin/xlint/lint1/Makefile:1.91 --- src/tests/usr.bin/xlint/lint1/Makefile:1.90 Thu Jul 15 17:09:08 2021 +++ src/tests/usr.bin/xlint/lint1/Makefile Thu Jul 15 19:51:29 2021 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.90 2021/07/15 17:09:08 rillig Exp $ +# $NetBSD: Makefile,v 1.91 2021/07/15 19:51:29 rillig Exp $ NOMAN= # defined MAX_MESSAGE= 345 # see lint1/err.c @@ -118,6 +118,8 @@ FILES+= decl.c FILES+= decl.exp FILES+= decl_arg.c FILES+= decl_arg.exp +FILES+= decl_struct_c90.c +FILES+= decl_struct_c90.exp FILES+= decl_struct_member.c FILES+= decl_struct_member.exp FILES+= emit.c Index: src/tests/usr.bin/xlint/lint1/decl_struct_member.c diff -u src/tests/usr.bin/xlint/lint1/decl_struct_member.c:1.6 src/tests/usr.bin/xlint/lint1/decl_struct_member.c:1.7 --- src/tests/usr.bin/xlint/lint1/decl_struct_member.c:1.6 Wed Jul 14 20:39:13 2021 +++ src/tests/usr.bin/xlint/lint1/decl_struct_member.c Thu Jul 15 19:51:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl_struct_member.c,v 1.6 2021/07/14 20:39:13 rillig Exp $ */ +/* $NetBSD: decl_struct_member.c,v 1.7 2021/07/15 19:51:29 rillig Exp $ */ # 3 "decl_struct_member.c" struct multi_attributes { @@ -29,6 +29,15 @@ struct cover_begin_type_noclass_declmods const volatile m2; }; +/* cover struct_or_union_specifier: struct_or_union error */ +/* expect+1: error: syntax error 'goto' [249] */ +struct goto { + /* expect+1: error: illegal type combination [4] */ + int member; + /* expect+1: error: syntax error '}' [249] */ +}; +/* expect-1: warning: empty declaration [0] */ + /* * Before cgram.y 1.228 from 2021-06-19, lint ran into an assertion failure: * Index: src/tests/usr.bin/xlint/lint1/decl_struct_member.exp diff -u src/tests/usr.bin/xlint/lint1/decl_struct_member.exp:1.5 src/tests/usr.bin/xlint/lint1/decl_struct_member.exp:1.6 --- src/tests/usr.bin/xlint/lint1/decl_struct_member.exp:1.5 Wed Jul 14 20:39:13 2021 +++ src/tests/usr.bin/xlint/lint1/decl_struct_member.exp Thu Jul 15 19:51:29 2021 @@ -1,4 +1,8 @@ -decl_struct_member.c(38): error: syntax error 'unnamed member' [249] -decl_struct_member.c(45): error: syntax error '0' [249] -decl_struct_member.c(46): warning: syntax requires ';' after last struct/union member [66] -decl_struct_member.c(53): error: cannot recover from previous errors [224] +decl_struct_member.c(34): error: syntax error 'goto' [249] +decl_struct_member.c(36): error: illegal type combination [4] +decl_struct_member.c(38): error: syntax error '}' [249] +decl_struct_member.c(38): warning: empty declaration [0] +decl_struct_member.c(47): error: syntax error 'unnamed member' [249] +decl_struct_member.c(54): error: syntax error '0' [249] +decl_struct_member.c(55): warning: syntax requires ';' after last struct/union member [66] +decl_struct_member.c(62): error: cannot recover from previous errors [224] Added files: Index: src/tests/usr.bin/xlint/lint1/decl_struct_c90.c diff -u /dev/null src/tests/usr.bin/xlint/lint1/decl_struct_c90.c:1.1 --- /dev/null Thu Jul 15 19:51:29 2021 +++ src/tests/usr.bin/xlint/lint1/decl_struct_c90.c Thu Jul 15 19:51:29 2021 @@ -0,0 +1,18 @@ +/* $NetBSD: decl_struct_c90.c,v 1.1 2021/07/15 19:51:29 rillig Exp $ */ +# 3 "decl_struct_c90.c" + +/* + * Test declaration of struct types, in C90 without any GNU extensions. + */ + +/* lint1-flags: -sw */ + +/* + * All of K&R, C90, C99 require that a struct member declaration is + * terminated with a semicolon. No idea why lint allows the missing + * semicolon in non-C90 mode. + */ +struct missing_semicolon { + int member +}; +/* expect-1: error: syntax requires ';' after last struct/union member [66] */ Index: src/tests/usr.bin/xlint/lint1/decl_struct_c90.exp diff -u /dev/null src/tests/usr.bin/xlint/lint1/decl_struct_c90.exp:1.1 --- /dev/null Thu Jul 15 19:51:29 2021 +++ src/tests/usr.bin/xlint/lint1/decl_struct_c90.exp Thu Jul 15 19:51:29 2021 @@ -0,0 +1 @@ +decl_struct_c90.c(17): error: syntax requires ';' after last struct/union member [66]