From 6996df410456292b358b8deaabd5ba2aea7af069 Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Wed, 26 Oct 2016 12:00:40 +0100 Subject: Fix double declarations with enum bug --- src/checker/expr.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/checker/expr.cpp') diff --git a/src/checker/expr.cpp b/src/checker/expr.cpp index 96b3832bd..dbddfd33e 100644 --- a/src/checker/expr.cpp +++ b/src/checker/expr.cpp @@ -753,10 +753,12 @@ void check_enum_type(Checker *c, Type *enum_type, Type *named_type, AstNode *nod add_entity_use(c, f->field, e); } - gb_sort_array(fields, et->fields.count, cmp_enum_order); + GB_ASSERT(field_index <= et->fields.count); + + gb_sort_array(fields, field_index, cmp_enum_order); enum_type->Record.other_fields = fields; - enum_type->Record.other_field_count = et->fields.count; + enum_type->Record.other_field_count = field_index; enum_type->Record.enum_count = make_entity_constant(c->allocator, NULL, make_token_ident(make_string("count")), t_int, make_exact_value_integer(enum_type->Record.other_field_count)); -- cgit v1.2.3