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