1*398514d3Srillig /* $NetBSD: opt_pcs.c,v 1.18 2023/06/16 23:07:52 rillig Exp $ */
20c07b89fSrillig
3ec30234bSrillig /*
4ec30234bSrillig * Tests for the options '-pcs' and '-npcs'.
5ec30234bSrillig *
6ec30234bSrillig * The option '-pcs' adds a space in a function call expression, between the
7ec30234bSrillig * function name and the opening parenthesis.
8ec30234bSrillig *
9ec30234bSrillig * The option '-npcs' removes any whitespace from a function call expression,
10ec30234bSrillig * between the function name and the opening parenthesis.
11ec30234bSrillig */
12ec30234bSrillig
1347306038Srillig //indent input
140c07b89fSrillig void
example(void)150c07b89fSrillig example(void)
160c07b89fSrillig {
170c07b89fSrillig function_call();
180c07b89fSrillig function_call (1);
190c07b89fSrillig function_call (1,2,3);
200c07b89fSrillig }
2147306038Srillig //indent end
220c07b89fSrillig
2347306038Srillig //indent run -pcs
240c07b89fSrillig void
example(void)250c07b89fSrillig example(void)
260c07b89fSrillig {
270c07b89fSrillig function_call ();
280c07b89fSrillig function_call (1);
290c07b89fSrillig function_call (1, 2, 3);
300c07b89fSrillig }
3147306038Srillig //indent end
320c07b89fSrillig
3347306038Srillig //indent run -npcs
340c07b89fSrillig void
example(void)350c07b89fSrillig example(void)
360c07b89fSrillig {
370c07b89fSrillig function_call();
380c07b89fSrillig function_call(1);
390c07b89fSrillig function_call(1, 2, 3);
400c07b89fSrillig }
4147306038Srillig //indent end
425c8fd3b3Srillig
43e513df21Srillig
4447306038Srillig //indent input
4538900eccSrillig void ( * signal ( void ( * handler ) ( int ) ) ) ( int ) ;
46e513df21Srillig int var = (function)(arg);
4747306038Srillig //indent end
48e513df21Srillig
4947306038Srillig //indent run -di0 -pcs
5038900eccSrillig void (*signal (void (*handler) (int))) (int);
516c38484fSrillig // $ This may be a function call or a cast, depending on the context.
5238900eccSrillig int var = (function) (arg);
5347306038Srillig //indent end
5438900eccSrillig
5547306038Srillig //indent run -di0 -npcs
5647ec159eSrillig void (*signal(void (*handler)(int)))(int);
5747ec159eSrillig int var = (function)(arg);
5847306038Srillig //indent end
59e513df21Srillig
607a5fe476Srillig
615c8fd3b3Srillig /*
625c8fd3b3Srillig * The option '-pcs' also applies to 'sizeof' and 'offsetof', even though
635c8fd3b3Srillig * these are not functions.
645c8fd3b3Srillig */
6547306038Srillig //indent input
665c8fd3b3Srillig int sizeof_type = sizeof (int);
675c8fd3b3Srillig int sizeof_type = sizeof(int);
685c8fd3b3Srillig int sizeof_expr = sizeof (0);
695c8fd3b3Srillig int sizeof_expr = sizeof(0);
705c8fd3b3Srillig int sizeof_expr = sizeof 0;
715c8fd3b3Srillig
725c8fd3b3Srillig int offset = offsetof(struct s, member);
735c8fd3b3Srillig int offset = offsetof (struct s, member);
7447306038Srillig //indent end
755c8fd3b3Srillig
76a12a1592Srillig /* The option '-pcs' overrides '-nbs'. */
7747306038Srillig //indent run -pcs -di0 -nbs
78a12a1592Srillig int sizeof_type = sizeof (int);
79a12a1592Srillig int sizeof_type = sizeof (int);
80a12a1592Srillig int sizeof_expr = sizeof (0);
81a12a1592Srillig int sizeof_expr = sizeof (0);
82a12a1592Srillig int sizeof_expr = sizeof 0;
83a12a1592Srillig
84a12a1592Srillig int offset = offsetof (struct s, member);
85a12a1592Srillig int offset = offsetof (struct s, member);
8647306038Srillig //indent end
87a12a1592Srillig
88a12a1592Srillig /*
89a12a1592Srillig * If the option '-npcs' is given, '-bs' can still specialize it. This only
90a12a1592Srillig * applies to 'sizeof', but not 'offsetof'.
91a12a1592Srillig */
9247306038Srillig //indent run -npcs -di0 -bs
935c8fd3b3Srillig int sizeof_type = sizeof (int);
945c8fd3b3Srillig int sizeof_type = sizeof (int);
955c8fd3b3Srillig int sizeof_expr = sizeof (0);
965c8fd3b3Srillig int sizeof_expr = sizeof (0);
975c8fd3b3Srillig int sizeof_expr = sizeof 0;
985c8fd3b3Srillig
995c8fd3b3Srillig int offset = offsetof(struct s, member);
1005c8fd3b3Srillig int offset = offsetof(struct s, member);
10147306038Srillig //indent end
1025c8fd3b3Srillig
10347306038Srillig //indent run -npcs -di0
1045c8fd3b3Srillig int sizeof_type = sizeof(int);
1055c8fd3b3Srillig int sizeof_type = sizeof(int);
1065c8fd3b3Srillig int sizeof_expr = sizeof(0);
1075c8fd3b3Srillig int sizeof_expr = sizeof(0);
1085c8fd3b3Srillig int sizeof_expr = sizeof 0;
1095c8fd3b3Srillig
1105c8fd3b3Srillig int offset = offsetof(struct s, member);
1115c8fd3b3Srillig int offset = offsetof(struct s, member);
11247306038Srillig //indent end
113d46fdfe3Srillig
114d46fdfe3Srillig
115d46fdfe3Srillig //indent input
116d46fdfe3Srillig int unary = +call();
117641fe745Srillig int postfix = step++();
118d46fdfe3Srillig int binary = 1 + call();
119d46fdfe3Srillig //indent end
120d46fdfe3Srillig
121d46fdfe3Srillig //indent run-equals-input -npcs -di0
122d46fdfe3Srillig
123d46fdfe3Srillig //indent run -pcs -di0
124d46fdfe3Srillig int unary = +call ();
125641fe745Srillig int postfix = step++ ();
126d46fdfe3Srillig int binary = 1 + call ();
127d46fdfe3Srillig //indent end
128