Module Name: src Committed By: rillig Date: Sun Nov 28 16:05:59 UTC 2021
Modified Files: src/distrib/sets/lists/tests: mi src/tests/usr.bin/indent: Makefile lsym_case_label.c lsym_colon.c opt_cli.c Removed Files: src/tests/usr.bin/indent: token_case_label.c Log Message: tests/indent: migrate test token_case_label to lsym_case_label To generate a diff of this commit: cvs rdiff -u -r1.1171 -r1.1172 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.37 -r1.38 src/tests/usr.bin/indent/Makefile cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/indent/lsym_case_label.c cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/indent/lsym_colon.c \ src/tests/usr.bin/indent/opt_cli.c cvs rdiff -u -r1.1 -r0 src/tests/usr.bin/indent/token_case_label.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.1171 src/distrib/sets/lists/tests/mi:1.1172 --- src/distrib/sets/lists/tests/mi:1.1171 Sun Nov 28 15:26:22 2021 +++ src/distrib/sets/lists/tests/mi Sun Nov 28 16:05:59 2021 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1171 2021/11/28 15:26:22 rillig Exp $ +# $NetBSD: mi,v 1.1172 2021/11/28 16:05:59 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -5243,7 +5243,7 @@ ./usr/tests/usr.bin/indent/token-while_expr.0.pro tests-obsolete obsolete,atf ./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_case_label.c tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/token_colon.c tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/token_comma.c tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/token_comment.c tests-usr.bin-tests compattestfile,atf Index: src/tests/usr.bin/indent/Makefile diff -u src/tests/usr.bin/indent/Makefile:1.37 src/tests/usr.bin/indent/Makefile:1.38 --- src/tests/usr.bin/indent/Makefile:1.37 Sun Nov 28 15:26:22 2021 +++ src/tests/usr.bin/indent/Makefile Sun Nov 28 16:05:59 2021 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.37 2021/11/28 15:26:22 rillig Exp $ +# $NetBSD: Makefile,v 1.38 2021/11/28 16:05:59 rillig Exp $ .include <bsd.own.mk> @@ -111,7 +111,6 @@ FILES+= psym_switch_expr.c FILES+= psym_while_expr.c FILES+= t_options.awk FILES+= token_binary_op.c -FILES+= token_case_label.c FILES+= token_comment.c FILES+= token_decl.c FILES+= token_do_stmt.c Index: src/tests/usr.bin/indent/lsym_case_label.c diff -u src/tests/usr.bin/indent/lsym_case_label.c:1.3 src/tests/usr.bin/indent/lsym_case_label.c:1.4 --- src/tests/usr.bin/indent/lsym_case_label.c:1.3 Wed Nov 24 21:34:34 2021 +++ src/tests/usr.bin/indent/lsym_case_label.c Sun Nov 28 16:05:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_case_label.c,v 1.3 2021/11/24 21:34:34 rillig Exp $ */ +/* $NetBSD: lsym_case_label.c,v 1.4 2021/11/28 16:05:59 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -14,13 +14,29 @@ * C11 6.5.1.1 "Generic selection" */ -// TODO: test C11 _Generic - +/* + * A case label can be used in a 'switch' statement. + */ #indent input -// TODO: add input +void function(void){switch(expr){case 1:;case 2:break;default:switch(inner){case 4:break;}}} #indent end -#indent run-equals-input +#indent run +void +function(void) +{ + switch (expr) { + case 1: ; + case 2: + break; + default: + switch (inner) { + case 4: + break; + } + } +} +#indent end /* @@ -59,3 +75,42 @@ function(void) } } #indent end + + +/* + * Since C11, the _Generic selection expression allows a switch on the data + * type of an expression. + */ +#indent input +const char *type_name = _Generic( + ' ', + int: "character constants have type 'int'", + char: "character constants have type 'char'", + default: "character constants have some other type" +); +#indent end + +#indent run -di0 +const char *type_name = _Generic( +// $ XXX: It's strange to align the arguments at the parenthesis even though +// $ XXX: the first argument is already on a separate line. + ' ', +// $ TODO: indent the type names +int: "character constants have type 'int'", +char: "character constants have type 'char'", +default: +// $ TODO: remove the newline after 'default:' + "character constants have some other type" +); +#indent end + +#indent run -di0 -nlp +const char *type_name = _Generic( + ' ', +// $ TODO: indent the type names +int: "character constants have type 'int'", +char: "character constants have type 'char'", +default: + "character constants have some other type" +); +#indent end Index: src/tests/usr.bin/indent/lsym_colon.c diff -u src/tests/usr.bin/indent/lsym_colon.c:1.2 src/tests/usr.bin/indent/lsym_colon.c:1.3 --- src/tests/usr.bin/indent/lsym_colon.c:1.2 Sun Nov 28 14:49:28 2021 +++ src/tests/usr.bin/indent/lsym_colon.c Sun Nov 28 16:05:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_colon.c,v 1.2 2021/11/28 14:49:28 rillig Exp $ */ +/* $NetBSD: lsym_colon.c,v 1.3 2021/11/28 16:05:59 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -12,8 +12,12 @@ * * In the declaration of a struct member that is a bit-field. * + * Since C11, in the _Generic selection to separate the type from its + * corresponding expression. + * * See also: * label.c + * lsym_case_label.c for the C11 _Generic expression * lsym_question.c */ Index: src/tests/usr.bin/indent/opt_cli.c diff -u src/tests/usr.bin/indent/opt_cli.c:1.2 src/tests/usr.bin/indent/opt_cli.c:1.3 --- src/tests/usr.bin/indent/opt_cli.c:1.2 Sat Nov 20 16:54:17 2021 +++ src/tests/usr.bin/indent/opt_cli.c Sun Nov 28 16:05:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: opt_cli.c,v 1.2 2021/11/20 16:54:17 rillig Exp $ */ +/* $NetBSD: opt_cli.c,v 1.3 2021/11/28 16:05:59 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -24,6 +24,31 @@ classify(int n) } #indent end +#indent run -cli0.5 +void +classify(int n) +{ + switch (n) { + case 0: + print("zero"); + break; + case 1: + print("one"); + break; + case 2: + case 3: + print("prime"); + break; + case 4: + print("square"); + break; + default: + print("large"); + break; + } +} +#indent end + #indent run -cli1.5 void classify(int n)