type: Make an assert()ion independent of the last entry of an enum.
[cparser] / ast2firm.c
index 3cc2db0..384450c 100644 (file)
@@ -235,12 +235,6 @@ static void init_atomic_modes(void)
        }
 }
 
-ir_mode *get_atomic_mode(atomic_type_kind_t kind)
-{
-       assert(kind <= ATOMIC_TYPE_LAST);
-       return atomic_modes[kind];
-}
-
 static ir_node *get_vla_size(array_type_t *const type)
 {
        ir_node *size_node = type->size_node;
@@ -334,6 +328,8 @@ static type_t *get_parameter_type(type_t *orig_type)
        return type;
 }
 
+static ir_type *get_ir_type(type_t *type);
+
 static ir_type *create_method_type(const function_type_t *function_type, bool for_closure)
 {
        type_t        *return_type  = skip_typeref(function_type->return_type);
@@ -680,7 +676,7 @@ static ir_type *get_ir_type_incomplete(type_t *type)
        }
 }
 
-ir_type *get_ir_type(type_t *type)
+static ir_type *get_ir_type(type_t *type)
 {
        type = skip_typeref(type);
 
@@ -2204,15 +2200,15 @@ static ir_node *handle_assume(expression_t const *const expr)
 
 static ir_node *create_cast(unary_expression_t const *const expr)
 {
-       type_t *const type = skip_typeref(expr->base.type);
-       if (is_type_void(type))
-               return NULL;
-
        type_t  *const from_type = skip_typeref(expr->value->base.type);
        ir_node       *value     = is_type_complex(from_type)
                ? expression_to_complex(expr->value).real
                : expression_to_value(expr->value);
 
+       type_t *const type = skip_typeref(expr->base.type);
+       if (is_type_void(type))
+               return NULL;
+
        dbg_info *const dbgi = get_dbg_info(&expr->base.pos);
        ir_mode  *const mode = get_ir_mode_storage(type);
        /* check for conversion from / to __based types */