Commit 77a1da2c by Mike Stump Committed by Mike Stump

re PR other/31778 (genattrtab.c doesn't record filename)

        PR other/31778
        * genattrtab.c (filename): Add.
        (convert_set_attr_alternative): Improve error message.
	(check_defs): Restore read_md_filename for error messages.
        (gen_insn): Save filename.

From-SVN: r210340
parent f636f886
2014-05-12 Mike Stump <mikestump@comcast.net>
PR other/31778
* genattrtab.c (filename): Add.
(convert_set_attr_alternative): Improve error message.
(check_defs): Restore read_md_filename for error messages.
(gen_insn): Save filename.
2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com> 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
* doc/invoke.texi: Document new switches -Wno-shadow-ivar, * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
......
...@@ -139,6 +139,7 @@ struct insn_def ...@@ -139,6 +139,7 @@ struct insn_def
rtx def; /* The DEFINE_... */ rtx def; /* The DEFINE_... */
int insn_code; /* Instruction number. */ int insn_code; /* Instruction number. */
int insn_index; /* Expression number in file, for errors. */ int insn_index; /* Expression number in file, for errors. */
const char *filename; /* Filename. */
int lineno; /* Line number. */ int lineno; /* Line number. */
int num_alternatives; /* Number of alternatives. */ int num_alternatives; /* Number of alternatives. */
int vec_idx; /* Index of attribute vector in `def'. */ int vec_idx; /* Index of attribute vector in `def'. */
...@@ -1066,7 +1067,8 @@ convert_set_attr_alternative (rtx exp, struct insn_def *id) ...@@ -1066,7 +1067,8 @@ convert_set_attr_alternative (rtx exp, struct insn_def *id)
if (XVECLEN (exp, 1) != num_alt) if (XVECLEN (exp, 1) != num_alt)
{ {
error_with_line (id->lineno, error_with_line (id->lineno,
"bad number of entries in SET_ATTR_ALTERNATIVE"); "bad number of entries in SET_ATTR_ALTERNATIVE, was %d expected %d",
XVECLEN (exp, 1), num_alt);
return NULL_RTX; return NULL_RTX;
} }
...@@ -1137,6 +1139,7 @@ check_defs (void) ...@@ -1137,6 +1139,7 @@ check_defs (void)
if (XVEC (id->def, id->vec_idx) == NULL) if (XVEC (id->def, id->vec_idx) == NULL)
continue; continue;
read_md_filename = id->filename;
for (i = 0; i < XVECLEN (id->def, id->vec_idx); i++) for (i = 0; i < XVECLEN (id->def, id->vec_idx); i++)
{ {
value = XVECEXP (id->def, id->vec_idx, i); value = XVECEXP (id->def, id->vec_idx, i);
...@@ -3280,6 +3283,7 @@ gen_insn (rtx exp, int lineno) ...@@ -3280,6 +3283,7 @@ gen_insn (rtx exp, int lineno)
id->next = defs; id->next = defs;
defs = id; defs = id;
id->def = exp; id->def = exp;
id->filename = read_md_filename;
id->lineno = lineno; id->lineno = lineno;
switch (GET_CODE (exp)) switch (GET_CODE (exp))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment