1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#ifdef TEST1
enum tag
{
first,
second,
third
};
#endif
#ifdef TEST2
enum tag
{
first, /* IGNORE */
second,
third,
first, /* ERROR */
fourth
};
#endif
#ifdef TEST3
enum
{
first, /* IGNORE */
second,
third,
first, /* ERROR */
fourth
};
#endif
#ifdef TEST4
enum
{
first=1,
second,
third,
};
#endif
#ifdef TEST5
enum
{
first=1.1, /* ERROR */
second,
third,
};
#endif
#ifdef TEST6
int second; /* IGNORE */
enum tag
{
first,
second, /* ERROR */
third
};
#endif
#ifdef TEST7
enum tag /* IGNORE */
{
first,
second,
third
};
enum tag { /* ERROR */
fourth,
fifth,
sixth
};
#endif
#ifdef TEST8
enum tag x; /* IGNORE(GCC) */
enum tag
{
first,
second,
third
};
#endif
#ifdef TEST9
enum comma
{
first,
second,, /* ERROR */
}
#endif
// C23 allows multiple compatible definitions for enum.
#ifdef TEST10
#ifdef __SDCC
#pragma std_c23
#endif
enum X {A = 1, B}; /* IGNORE */
enum X {B = 2, A = 1}; /* IGNORE(GCC) */
enum X {A = 1, B = 3}; /* ERROR */
#endif
|