1 1.2 rillig /* $NetBSD: gcc_attribute_enum.c,v 1.2 2021/07/25 18:34:44 rillig Exp $ */ 2 1.1 rillig # 3 "gcc_attribute_enum.c" 3 1.1 rillig 4 1.1 rillig /* 5 1.1 rillig * Tests for the GCC __attribute__ for enumerators. 6 1.1 rillig * 7 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Enumerator-Attributes.html 8 1.1 rillig */ 9 1.1 rillig 10 1.2 rillig /* 11 1.2 rillig * Attributes in enum-specifier. 12 1.2 rillig * 13 1.2 rillig * See GCC, c-parser.c, function c_parser_enum_specifier. 14 1.2 rillig */ 15 1.2 rillig 16 1.2 rillig /* expect+1: syntax error '__attribute__' [249] */ 17 1.2 rillig enum __attribute__(()) tag; 18 1.2 rillig 19 1.2 rillig /* expect+2: syntax error '__attribute__' [249] */ 20 1.2 rillig /* expect+1: syntax error '{' [249] */ 21 1.2 rillig enum __attribute__(()) tag_with_declaration { 22 1.2 rillig TAG_WITH_DECL 23 1.2 rillig } __attribute__(()); 24 1.2 rillig /* expect-1: syntax error ';' [249] */ 25 1.2 rillig 26 1.2 rillig /* expect+1: syntax error '{' [249] */ 27 1.2 rillig enum __attribute__(()) { 28 1.2 rillig ONLY_DECL 29 1.2 rillig } __attribute__(()); 30 1.2 rillig /* expect-1: syntax error ';' [249] */ 31 1.2 rillig /* expect-2: error: cannot recover from previous errors [224] */ 32 1.2 rillig 33 1.2 rillig /* 34 1.2 rillig * Attributes in enumerator. 35 1.2 rillig * 36 1.2 rillig * See GCC, c-parser.c, function c_parser_enum_specifier. 37 1.2 rillig */ 38 1.2 rillig 39 1.2 rillig enum { 40 1.2 rillig NO_INIT_FIRST __attribute__(()), 41 1.2 rillig NO_INIT__LAST __attribute__(()) 42 1.2 rillig }; 43 1.2 rillig 44 1.2 rillig enum { 45 1.2 rillig INIT_FIRST __attribute__(()) = 1, 46 1.2 rillig INIT__LAST __attribute__(()) = 2 47 1.1 rillig }; 48