xref: /netbsd-src/tests/usr.bin/xlint/lint1/parse_init_declarator.c (revision b2baa50111d645353fa30b4deab0f79d93650c8c)
1 /*	$NetBSD: parse_init_declarator.c,v 1.4 2023/03/28 14:44:35 rillig Exp $	*/
2 # 3 "parse_init_declarator.c"
3 
4 /*
5  * Test parsing of init-declarator, which occurs as part of a top-level
6  * declaration.
7  *
8  * See also: GCC, c-parser.cpp, function c_parser_declaration_or_fndef.
9  */
10 
11 /* lint1-extra-flags: -X 351 */
12 
13 int global_var;
14 
15 int *init_declarator_without_initializer
16     __asm("") __attribute__((deprecated));
17 
18 /* XXX: GCC does not accept this, neither should lint. */
19 int *init_declarator_without_initializer_wrong_order
20     __attribute__((deprecated)) __asm("");
21 
22 int *init_declarator_with_initializer
23     __asm("") __attribute__((deprecated)) = &global_var;
24 
25 /* XXX: GCC does not accept this, neither should lint. */
26 int *init_declarator_with_initializer_wrong_order
27     __attribute__((deprecated)) __asm("") = &global_var;
28 
29 /* The attributes may only occur before the initializer, not after it. */
30 int *init_declarator_with_initializer_attribute_too_late
31     __asm("") = &global_var __attribute__((deprecated));
32 /* expect-1: error: syntax error '__attribute__' [249] */
33 
34 /* cover cgram_declare, freeyyv */
35 int original __symbolrename(renamed);
36