xref: /netbsd-src/tests/usr.bin/indent/lsym_do.c (revision abcf191e28d1cc96b74e4d1859cf98e17aa89f30)
1*abcf191eSrillig /* $NetBSD: lsym_do.c,v 1.10 2023/06/05 09:41:40 rillig Exp $ */
29ae26de1Srillig 
39ae26de1Srillig /*
49ae26de1Srillig  * Tests for the token lsym_do, which represents the keyword 'do' that starts
59ae26de1Srillig  * a 'do-while' loop.
69ae26de1Srillig  *
79ae26de1Srillig  * See also:
89ae26de1Srillig  *	psym_do.c
99ae26de1Srillig  *	psym_do_stmt.c
109ae26de1Srillig  *	C11 6.8.5		"Iteration statements"
119ae26de1Srillig  *	C11 6.8.5.2		"The 'do' statement"
129ae26de1Srillig  */
139ae26de1Srillig 
1447306038Srillig //indent input
15b60cb68fSrillig void
function(void)16b60cb68fSrillig function(void)
17b60cb68fSrillig {
18b60cb68fSrillig 	do stmt();while(cond);
19b60cb68fSrillig }
2047306038Srillig //indent end
219ae26de1Srillig 
22b60cb68fSrillig //indent run
23b60cb68fSrillig void
function(void)24b60cb68fSrillig function(void)
25b60cb68fSrillig {
26b60cb68fSrillig 	do
27b60cb68fSrillig 		stmt();
28b60cb68fSrillig 	while (cond);
29b60cb68fSrillig }
30b60cb68fSrillig //indent end
3144c1f7b6Srillig 
3244c1f7b6Srillig 
3344c1f7b6Srillig //indent input
3444c1f7b6Srillig void
else_do(int i)3544c1f7b6Srillig else_do(int i)
3644c1f7b6Srillig {
3744c1f7b6Srillig 	if (i > 0) return; else do {} while (0);
3844c1f7b6Srillig }
3944c1f7b6Srillig //indent end
4044c1f7b6Srillig 
4144c1f7b6Srillig //indent run
4244c1f7b6Srillig void
else_do(int i)4344c1f7b6Srillig else_do(int i)
4444c1f7b6Srillig {
4544c1f7b6Srillig 	if (i > 0)
4644c1f7b6Srillig 		return;
4744c1f7b6Srillig 	else
4844c1f7b6Srillig 		do {
4944c1f7b6Srillig 		} while (0);
5044c1f7b6Srillig }
5144c1f7b6Srillig //indent end
52ff059387Srillig 
53ff059387Srillig 
54ff059387Srillig //indent input
55ff059387Srillig void
variants(void)56ff059387Srillig variants(void)
57ff059387Srillig {
58ff059387Srillig 	do stmt(); while (0);
59ff059387Srillig 
60ff059387Srillig 	do { stmt(); } while (0);
61ff059387Srillig 
62ff059387Srillig 	do /* comment */ stmt(); while (0);
63ff059387Srillig 
64ff059387Srillig 	while (0) do {} while (0);
65ff059387Srillig }
66ff059387Srillig //indent end
67ff059387Srillig 
68ff059387Srillig //indent run
69ff059387Srillig void
variants(void)70ff059387Srillig variants(void)
71ff059387Srillig {
72ff059387Srillig 	do
73ff059387Srillig 		stmt();
74ff059387Srillig 	while (0);
75ff059387Srillig 
76ff059387Srillig 	do {
77ff059387Srillig 		stmt();
78ff059387Srillig 	} while (0);
79ff059387Srillig 
80ff059387Srillig 	do			/* comment */
81ff059387Srillig 		stmt();
82ff059387Srillig 	while (0);
83ff059387Srillig 
84ff059387Srillig 	while (0)
85ff059387Srillig 		do {
86ff059387Srillig 		} while (0);
87ff059387Srillig }
88ff059387Srillig //indent end
899bf98238Srillig 
909bf98238Srillig //indent run -bl
919bf98238Srillig void
variants(void)929bf98238Srillig variants(void)
939bf98238Srillig {
949bf98238Srillig 	do
959bf98238Srillig 		stmt();
969bf98238Srillig 	while (0);
979bf98238Srillig 
989bf98238Srillig 	do
999bf98238Srillig 	{
1009bf98238Srillig 		stmt();
1019bf98238Srillig 	} while (0);
1029bf98238Srillig 
1039bf98238Srillig 	do			/* comment */
1049bf98238Srillig 		stmt();
1059bf98238Srillig 	while (0);
1069bf98238Srillig 
1079bf98238Srillig 	while (0)
1089bf98238Srillig 		do
1099bf98238Srillig 		{
1109bf98238Srillig 		} while (0);
1119bf98238Srillig }
1129bf98238Srillig //indent end
113452673c1Srillig 
114452673c1Srillig 
115452673c1Srillig /* Ensure that the 'do' starts a line. */
116452673c1Srillig //indent input
117452673c1Srillig {
118452673c1Srillig 	/* */ do {} while (false);
119452673c1Srillig 
120452673c1Srillig 	word do {} while (false);
121452673c1Srillig 
122452673c1Srillig 	label: do {} while (false);
123452673c1Srillig }
124452673c1Srillig //indent end
125452673c1Srillig 
126452673c1Srillig //indent run
127452673c1Srillig {
128452673c1Srillig 	/* */
129452673c1Srillig 	do {
130452673c1Srillig 	} while (false);
131452673c1Srillig 
132452673c1Srillig 	word
133452673c1Srillig 	do {
134452673c1Srillig 	} while (false);
135452673c1Srillig 
136452673c1Srillig label:	do {
137452673c1Srillig 	} while (false);
138452673c1Srillig }
139452673c1Srillig //indent end
140452673c1Srillig 
141*abcf191eSrillig //indent run-equals-prev-output -sob
142