change back union stuff and expriment with new union mode for initializers
[cparser] / ast.c
diff --git a/ast.c b/ast.c
index c26b8a9..984df78 100644 (file)
--- a/ast.c
+++ b/ast.c
@@ -513,18 +513,20 @@ static void print_storage_class(storage_class_t storage_class)
 void print_initializer(const initializer_t *initializer)
 {
        if(initializer->type == INITIALIZER_VALUE) {
-               print_expression(initializer->v.value);
+               const initializer_value_t *value = &initializer->value;
+               print_expression(value->value);
                return;
        }
 
        assert(initializer->type == INITIALIZER_LIST);
        fputs("{ ", out);
+       const initializer_list_t *list = &initializer->list;
 
-       for(size_t i = 0 ; i < initializer->v.list.len; ++i) {
+       for(size_t i = 0 ; i < list->len; ++i) {
                if(i > 0) {
                        fputs(", ", out);
                }
-               print_initializer(initializer->v.list.initializers[i]);
+               print_initializer(list->initializers[i]);
        }
        fputs("}", out);
 }