Fix r459: array_type_t is not pointer_type_t.
authorChristoph Mallon <christoph.mallon@gmx.de>
Sat, 17 Nov 2007 17:29:37 +0000 (17:29 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Sat, 17 Nov 2007 17:29:37 +0000 (17:29 +0000)
[r18453]

parser.c

index ccb7789..2f8a5fe 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -2851,7 +2851,12 @@ static void semantic_dereference(unary_expression_t *expression)
 
        type_t *type = skip_typeref(orig_type);
        switch (type->type) {
-               case TYPE_ARRAY:
+               case TYPE_ARRAY: {
+                       array_type_t *const array_type  = (array_type_t*)type;
+                       expression->expression.datatype = array_type->element_type;
+                       break;
+               }
+
                case TYPE_POINTER: {
                        pointer_type_t *pointer_type    = (pointer_type_t*)type;
                        expression->expression.datatype = pointer_type->points_to;