http://www.mail-archive.com/elfutils-devel@lists.fedorahosted.org/msg00816.html
** dwarflint --stats
-*** the mutable/immutable part is not implemented yet
- http://www.mail-archive.com/elfutils-devel@lists.fedorahosted.org/msg00849.html
+*** mutability probably needs to take into account DW_OP_call*
+ https://fedorahosted.org/pipermail/elfutils-devel/2010-October/001628.html
** expected trees/attributes
This is about the check_expected_trees check. All attributes are
if (!checked_read_uleb128 (ctx, &value, &where,
"indirect attribute form"))
return -1;
+ form = value;
+ // xxx Some of what's below is probably duplicated in
+ // check_debug_abbrev. Consolidate.
if (!ver->form_allowed (form))
{
wr_error (where)
<< '.' << std::endl;
return -1;
}
- form = value;
if (it->name == DW_AT_sibling)
switch (ver->check_sibling_form (form))
<< "DW_AT_sibling attribute with non-reference "
"(indirect) form \"" << pri::form (value)
<< "\"." << std::endl;
- };
+ }
+ }
+
+ if (form == DW_FORM_indirect)
+ {
+ wr_error (&where, ": indirect form is again indirect.\n");
+ return -1;
}
value_check_cb_t value_check_cb = NULL;
break;
}
- case DW_FORM_indirect:
- wr_error (&where, ": indirect form is again indirect.\n");
- return -1;
-
default:
wr_error (&where,
": internal error: unhandled form 0x%x.\n", form);