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