Module Name: src Committed By: rillig Date: Sun Nov 28 14:49:28 UTC 2021
Modified Files: src/distrib/sets/lists/tests: mi src/tests/usr.bin/indent: Makefile lsym_colon.c Removed Files: src/tests/usr.bin/indent: token_colon.c Log Message: tests/indent: move test for ':' to lsym_token.c To generate a diff of this commit: cvs rdiff -u -r1.1169 -r1.1170 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.35 -r1.36 src/tests/usr.bin/indent/Makefile cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/indent/lsym_colon.c cvs rdiff -u -r1.2 -r0 src/tests/usr.bin/indent/token_colon.c 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.1169 src/distrib/sets/lists/tests/mi:1.1170 --- src/distrib/sets/lists/tests/mi:1.1169 Sun Nov 28 14:29:03 2021 +++ src/distrib/sets/lists/tests/mi Sun Nov 28 14:49:28 2021 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1169 2021/11/28 14:29:03 rillig Exp $ +# $NetBSD: mi,v 1.1170 2021/11/28 14:49:28 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -5244,7 +5244,7 @@ ./usr/tests/usr.bin/indent/token-while_expr.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/token_binary_op.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/token_case_label.c tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/token_colon.c tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/indent/token_colon.c tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/token_comma.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/token_comment.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/token_decl.c tests-usr.bin-tests compattestfile,atf Index: src/tests/usr.bin/indent/Makefile diff -u src/tests/usr.bin/indent/Makefile:1.35 src/tests/usr.bin/indent/Makefile:1.36 --- src/tests/usr.bin/indent/Makefile:1.35 Sun Nov 28 14:29:03 2021 +++ src/tests/usr.bin/indent/Makefile Sun Nov 28 14:49:28 2021 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.35 2021/11/28 14:29:03 rillig Exp $ +# $NetBSD: Makefile,v 1.36 2021/11/28 14:49:28 rillig Exp $ .include <bsd.own.mk> @@ -112,7 +112,6 @@ FILES+= psym_while_expr.c FILES+= t_options.awk FILES+= token_binary_op.c FILES+= token_case_label.c -FILES+= token_colon.c FILES+= token_comma.c FILES+= token_comment.c FILES+= token_decl.c Index: src/tests/usr.bin/indent/lsym_colon.c diff -u src/tests/usr.bin/indent/lsym_colon.c:1.1 src/tests/usr.bin/indent/lsym_colon.c:1.2 --- src/tests/usr.bin/indent/lsym_colon.c:1.1 Thu Nov 18 21:19:19 2021 +++ src/tests/usr.bin/indent/lsym_colon.c Sun Nov 28 14:49:28 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_colon.c,v 1.1 2021/11/18 21:19:19 rillig Exp $ */ +/* $NetBSD: lsym_colon.c,v 1.2 2021/11/28 14:49:28 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -11,10 +11,96 @@ * As part of the conditional operator '?:'. * * In the declaration of a struct member that is a bit-field. + * + * See also: + * label.c + * lsym_question.c */ +/* + * The ':' marks a label that can be used in a 'goto' statement. + */ #indent input -// TODO: add input +void endless(void) +{ +label1: +goto label2; + + if (true)if (true)if (true)if (true)label2 :goto label1; +} +#indent end + +#indent run +void +endless(void) +{ +label1: + goto label2; + + if (true) + if (true) + if (true) + if (true) + label2: goto label1; +} +#indent end + + +/* + * The ':' is used in a 'switch' statement, after a 'case' label or a + * 'default' label. + */ +#indent input +void +example(void) +{ + switch (expr) { + case 'x': + return; + default: + return; + } +} #indent end #indent run-equals-input + + +/* + * The ':' is used as part of the conditional operator '?:'. + */ +#indent input +int constant_expression = true?4:12345; +#indent end + +#indent run +int constant_expression = true ? 4 : 12345; +#indent end + + +/* + * The ':' is used in the declaration of a struct member that is a bit-field. + */ +#indent input +struct bit_field { + bool flag:1; + int maybe_signed : 4; + signed int definitely_signed:3; + signed int : 0;/* padding */ + unsigned int definitely_unsigned:3; + unsigned int:0;/* padding */ +}; +#indent end + +#indent run +struct bit_field { + bool flag:1; + int maybe_signed:4; + signed int definitely_signed:3; +/* $ XXX: Placing the colon directly at the type looks inconsistent. */ + signed int: 0; /* padding */ + unsigned int definitely_unsigned:3; +/* $ XXX: Placing the colon directly at the type looks inconsistent. */ + unsigned int: 0; /* padding */ +}; +#indent end