fehler109
[libfirm] / ir / be / begnuas.c
index 5efb668..fff68aa 100644 (file)
@@ -554,7 +554,7 @@ static void dump_string_initializer(obstack_t *obst,
        obstack_printf(obst, "\t.string \"");
 
        len = initializer->compound.n_initializers;
-       for(i = 0; i < len; ++i) {
+       for(i = 0; i < len - 1; ++i) {
                const ir_initializer_t *sub_initializer
                        = get_initializer_compound_value(initializer, i);
 
@@ -605,8 +605,7 @@ static size_t get_initializer_size(const ir_initializer_t *initializer,
 {
        switch(get_initializer_kind(initializer)) {
        case IR_INITIALIZER_TARVAL: {
-               tarval *tv = get_initializer_tarval_value(initializer);
-               assert(get_tarval_mode(tv) == get_type_mode(type));
+               assert(get_tarval_mode(get_initializer_tarval_value(initializer)) == get_type_mode(type));
                return get_type_size_bytes(type);
        }
        case IR_INITIALIZER_CONST:
@@ -703,9 +702,9 @@ static void dump_ir_initializer(normal_or_bitfield *vals,
                                vals += skip;
                        }
                } else {
+                       size_t n_members, i;
                        assert(is_compound_type(type));
-                       size_t n_members = get_compound_n_members(type);
-                       size_t i;
+                       n_members = get_compound_n_members(type);
                        for(i = 0; i < n_members; ++i) {
                                ir_entity        *member  = get_compound_member(type, i);
                                size_t            offset  = get_entity_offset(member);