1/* $NetBSD: lsym_type.c,v 1.1 2023/06/16 23:51:32 rillig Exp $ */
2
3/*
4 * Tests for the token lsym_type, which represents a type name in the following
5 * contexts:
6 *
7 * In a declaration that is not for a function.
8 *
9 * As part of a parameter list of a function prototype.
10 *
11 * In a cast expression.
12 *
13 * In a compound expression (since C99).
14 *
15 * See also:
16 *	fmt_decl
17 *	lex_ident
18 *	lsym_word
19 *	opt_ta
20 *	opt_T
21 */
22
23/*
24 * Indent has to guess which identifiers are types and which are variables.
25 */
26//indent input
27t1		       *no_init_ptr;
28t2		       *init_ptr = 0;
29const t3	       *const_no_init_ptr;
30static t4	       *static_no_init_ptr;
31typedef t5 *typedef_no_init_ptr;
32
33// $ XXX: There's no point aligning the word 'const' with the other names.
34const char	       *const names[3];
35//indent end
36
37//indent run-equals-input -di24
38
39
40//indent input
41{
42{}
43size_t hello;
44}
45//indent end
46
47//indent run
48{
49	{
50	}
51	size_t		hello;
52}
53//indent end
54
55
56/*
57 * In a sizeof expression, a type argument must be enclosed in parentheses.
58 */
59//indent input
60int sizeof_int = sizeof int;
61//indent end
62
63//indent run-equals-input -di0
64