mode(byte)

why is this not legal in clang?

pedef enum { C = 1, D = 2 } B;
extern void abort (void);

struct S
{
   B __attribute__ ((mode (byte))) a;
   B __attribute__ ((mode (byte))) b;
};

byte is an integer type in this gcc definition