xref: /netbsd-src/tests/usr.bin/indent/lsym_return.c (revision 47306038c7d906b62edca1fd252c0e0d0772f5a0)
1 /* $NetBSD: lsym_return.c,v 1.4 2022/04/24 09:04:12 rillig Exp $ */
2 
3 /*
4  * Tests for the token lsym_return, which represents the keyword 'return' that
5  * starts a 'return' statement for leaving the execution of a function.
6  */
7 
8 /*
9  * Return statements having a single-line expression are simple to format.
10  * Since 'return' is not a function name, there is a space between the
11  * 'return' and the '('.
12  */
13 //indent input
14 void
function(bool cond)15 function(bool cond)
16 {
17 	if (cond)
18 		return;
19 }
20 
21 int
calculate(int a,int b)22 calculate(int a, int b)
23 {
24 	return a;
25 	return (b);
26 	return (((a))) + b;
27 	return calculate(b, a);
28 }
29 //indent end
30 
31 //indent run-equals-input
32 
33 
34 /*
35  * Returning complex expressions may spread the expression over several lines.
36  * The exact formatting depends on the option '-lp'.
37  */
38 //indent input
39 int
multi_line(int a)40 multi_line(int a)
41 {
42 	return calculate(3,
43 			 4);
44 	return calculate(
45 			 3,
46 			 4);
47 	return calculate(
48 			 3,
49 			 4
50 		);
51 }
52 //indent end
53 
54 //indent run-equals-input
55 
56 //indent run -nlp
57 int
multi_line(int a)58 multi_line(int a)
59 {
60 	return calculate(3,
61 		4);
62 	return calculate(
63 		3,
64 		4);
65 	return calculate(
66 		3,
67 		4
68 		);
69 }
70 //indent end
71