From f0a3871baea1b12ebcfe489f95056170b0e6b367 Mon Sep 17 00:00:00 2001 From: Michael Mitchener Date: Sun, 11 Oct 2015 20:44:11 -0400 Subject: [PATCH] enum subtype default value should be from subtype'left, not base type --- src/common.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/common.c b/src/common.c index b6255b265..8c5ed9ea8 100644 --- a/src/common.c +++ b/src/common.c @@ -552,7 +552,14 @@ tree_t make_default_value(type_t type, const loc_t *loc) return type_dim(type, 0).left; case T_ENUM: - return make_ref(type_enum_literal(base, 0)); + { + int64_t val = 0; + const bool folded = folded_int(type_dim(type, 0).left, &val); + if (folded) + return make_ref(type_enum_literal(base, (unsigned) val)); + else + return type_dim(type, 0).left; + } case T_RECORD: {