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 15 function(bool cond) 16 { 17 if (cond) 18 return; 19 } 20 21 int 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 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 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