"dimensions: %s\n", dwarf_errmsg(dwarf_errno()));
exit(1);
case 1: /* No dimensions. */
- id = str_append(id, "[]");
+ id = str_append(id, "[] ");
break;
default:
dimens = 1;
do {
char *sub_id = type_id(&dim_die, fun, data);
- id = str_appendn(id, " ", sub_id, NULL);
+ id = str_append(id, sub_id);
free(sub_id);
} while ((sib_ret = dwarf_siblingof(&dim_die, &dim_die)) == 0);
id = str_appendn(id, sub_id, elems, NULL);
free(sub_id);
}
- id = str_append(id, "]");
+ id = str_append(id, "] ");
break;
}
default:
Dwarf_Attribute nelem_attr;
Dwarf_Word nelems;
- if ((!dwarf_hasattr(die, DW_AT_type)) &&
- (((dwarf_attr(die, DW_AT_upper_bound, &nelem_attr)) == NULL) &&
- ((dwarf_attr(die, DW_AT_count, &nelem_attr))) == NULL))
+ if (((dwarf_attr(die, DW_AT_upper_bound, &nelem_attr) == NULL) &&
+ (dwarf_attr(die, DW_AT_count, &nelem_attr) == NULL)) ||
+ (!dwarf_hasattr(die, DW_AT_type)))
flexible_array = 1;
if (!flexible_array)
if (flexible_array)
return 0;
- nelems = dwarf_formudata(&nelem_attr, &nelems);
-
+ dwarf_formudata(&nelem_attr, &nelems);
return nelems;
}