From b65400a4bb10e15f3f103c4007d4e6d10ee99742 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 7 Apr 2016 05:39:18 -0400 Subject: [PATCH 24/91] FIXME: add operand names to errors --- gcc/rtl/rtl-frontend.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/gcc/rtl/rtl-frontend.c b/gcc/rtl/rtl-frontend.c index 6b92ea9..a3e284f 100644 --- a/gcc/rtl/rtl-frontend.c +++ b/gcc/rtl/rtl-frontend.c @@ -176,6 +176,21 @@ function_reader::handle_unknown_directive (file_location loc, const char *name) insns_by_uid.put (INSN_UID(x), x); } +static const char * +get_operand_name (rtx insn, int operand_idx) +{ + gcc_assert (is_a (insn)); + switch (operand_idx) + { + case 0: + return "PREV_INSN"; + case 1: + return "NEXT_INSN"; + default: + return NULL; + } +} + static void fixup_cb (file_location loc, rtx insn, int operand_idx, int insn_uid) { @@ -183,7 +198,17 @@ fixup_cb (file_location loc, rtx insn, int operand_idx, int insn_uid) if (insn_from_uid) XEXP (insn, operand_idx) = *insn_from_uid; else - error_at (loc, "insn UID %i not found", insn_uid); + { + const char *op_name = get_operand_name (insn, operand_idx); + if (op_name) + error_at (loc, + "insn with UID %i not found for operand %i (%qs) of insn %i", + insn_uid, operand_idx, op_name, INSN_UID (insn)); + else + error_at (loc, + "insn with UID %i not found for operand %i of insn %i", + insn_uid, operand_idx, INSN_UID (insn)); + } } static void -- 1.8.5.3