1*c83f7defSrillig /* $NetBSD: gcc_attribute_enum.c,v 1.5 2022/06/17 18:54:53 rillig Exp $ */ 2b4c7d7a7Srillig # 3 "gcc_attribute_enum.c" 3b4c7d7a7Srillig 4b4c7d7a7Srillig /* 5b4c7d7a7Srillig * Tests for the GCC __attribute__ for enumerators. 6b4c7d7a7Srillig * 7b4c7d7a7Srillig * https://gcc.gnu.org/onlinedocs/gcc/Enumerator-Attributes.html 8b4c7d7a7Srillig */ 9b4c7d7a7Srillig 10b538fc2dSrillig /* 11b538fc2dSrillig * Attributes in enum-specifier. 12b538fc2dSrillig * 13b538fc2dSrillig * See GCC, c-parser.c, function c_parser_enum_specifier. 14b538fc2dSrillig */ 15b538fc2dSrillig 16b538fc2dSrillig enum __attribute__(()) tag; 17b538fc2dSrillig 18b538fc2dSrillig enum __attribute__(()) tag_with_declaration { 19b538fc2dSrillig TAG_WITH_DECL 20b538fc2dSrillig } __attribute__(()); 21b538fc2dSrillig 22b538fc2dSrillig enum __attribute__(()) { 23b538fc2dSrillig ONLY_DECL 24b538fc2dSrillig } __attribute__(()); 25b538fc2dSrillig 26b538fc2dSrillig /* 27b538fc2dSrillig * Attributes in enumerator. 28b538fc2dSrillig * 29b538fc2dSrillig * See GCC, c-parser.c, function c_parser_enum_specifier. 30b538fc2dSrillig */ 31b538fc2dSrillig 32b48b6323Srillig enum without_initializer { 33b538fc2dSrillig NO_INIT_FIRST __attribute__(()), 345aebc23cSrillig NO_INIT_LAST __attribute__(()) 35b538fc2dSrillig }; 36b538fc2dSrillig 37b48b6323Srillig enum with_initializer { 38b538fc2dSrillig INIT_FIRST __attribute__(()) = 1, 395aebc23cSrillig INIT_LAST __attribute__(()) = 2, 40*c83f7defSrillig /* expect+1: error: syntax error '__attribute__' [249] */ 415aebc23cSrillig INIT_WRONG = 3 __attribute__(()), 42b4c7d7a7Srillig }; 43b48b6323Srillig 44b48b6323Srillig enum tag { 45b48b6323Srillig TAG 46b48b6323Srillig }; 47