&where, skip_mismatched)))
relocate_one (&data->rel, rel, data->file->addr_64 ? 8 : 4,
&addr, &where, sec_text, NULL);
- else
+ else if (data->file->ehdr.e_type == ET_REL)
wr_message (mc_impact_2 | mc_line | mc_reloc, &where,
PRI_LACK_RELOCATION, "DW_LNE_set_address");
break;
for (unsigned i = 0; i < operands; ++i)
{
uint64_t operand;
- if (!checked_read_uleb128 (&sub_ctx, &operand, &where,
- "opcode operand"))
+ char buf[128];
+ if (opcode != 0)
+ sprintf (buf, "operand #%d of DW_LNS_%s",
+ i, dwarf_locexpr_opcode_string (opcode));
+ else
+ sprintf (buf, "operand #%d of extended opcode %d",
+ i, extended);
+ if (!checked_read_uleb128 (&sub_ctx, &operand, &where, buf))
goto skip;
}