1/* $NetBSD: opt_bs.c,v 1.10 2022/04/24 09:04:12 rillig Exp $ */
2
3/*
4 * Tests for the options '-bs' and '-nbs' ("blank after sizeof").
5 *
6 * The option '-bs' forces a space after the keyword 'sizeof'.
7 *
8 * The option '-nbs' removes horizontal whitespace after the keyword 'sizeof',
9 * unless the next token is a word as well.
10 */
11
12//indent input
13void
14example(int i)
15{
16	print(sizeof(i));
17	print(sizeof(int));
18
19	print(sizeof i);
20	print(sizeof (i));
21	print(sizeof (int));
22
23	print(sizeof   i);
24	print(sizeof   (i));
25	print(sizeof   (int));
26}
27//indent end
28
29//indent run -bs
30void
31example(int i)
32{
33	print(sizeof (i));
34	print(sizeof (int));
35
36	print(sizeof i);
37	print(sizeof (i));
38	print(sizeof (int));
39
40	print(sizeof i);
41	print(sizeof (i));
42	print(sizeof (int));
43}
44//indent end
45
46//indent run -nbs
47void
48example(int i)
49{
50	print(sizeof(i));
51	print(sizeof(int));
52
53	print(sizeof i);
54	print(sizeof(i));
55	print(sizeof(int));
56
57	print(sizeof i);
58	print(sizeof(i));
59	print(sizeof(int));
60}
61//indent end
62
63
64/*
65 * The option '-bs' only affects 'sizeof', not 'offsetof', even though these
66 * two keywords are syntactically similar.
67 */
68//indent input
69int sizeof_type = sizeof   (int);
70int sizeof_type = sizeof(int);
71int sizeof_expr = sizeof   (0);
72int sizeof_expr = sizeof(0);
73int sizeof_expr = sizeof   0;
74
75int offset = offsetof(struct s, member);
76int offset = offsetof   (struct s, member);
77//indent end
78
79//indent run -pcs -di0
80int sizeof_type = sizeof (int);
81int sizeof_type = sizeof (int);
82int sizeof_expr = sizeof (0);
83int sizeof_expr = sizeof (0);
84int sizeof_expr = sizeof 0;
85
86int offset = offsetof (struct s, member);
87int offset = offsetof (struct s, member);
88//indent end
89
90//indent run -npcs -di0
91int sizeof_type = sizeof(int);
92int sizeof_type = sizeof(int);
93int sizeof_expr = sizeof(0);
94int sizeof_expr = sizeof(0);
95int sizeof_expr = sizeof 0;
96
97int offset = offsetof(struct s, member);
98int offset = offsetof(struct s, member);
99//indent end
100
101
102/* Ensure that there is no blank before 'sizeof(' if there is a '\n' between. */
103//indent input
104int sizeof_newline = sizeof
105(0);
106//indent end
107
108//indent run-equals-input -di0 -bs
109
110//indent run-equals-input -di0 -nbs
111
112
113/* Ensure that only the first '(' after 'sizeof' gets a blank. */
114//indent input
115int sizeof_parenthesized = sizeof((0));
116//indent end
117
118//indent run -di0 -bs
119int sizeof_parenthesized = sizeof ((0));
120//indent end
121
122//indent run-equals-input -di0 -nbs
123