$ cat p.c
enum {
a = 1
};
$ clang -cc1 -ast-dump p.c
typedef char *__builtin_va_list;
enum {
a = (ImplicitCastExpr 0xb9e11f0 <p.c:2:7> 'int' <IntegralCast>
(IntegerLiteral 0xb9e11a0 <col:7> 'int' 1))
};
The implicit cast from int to int is deliberate?