diff options
author | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-08 15:00:34 +0000 |
---|---|---|
committer | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-08 15:00:34 +0000 |
commit | cbb955b0d43c611d8d408f8d1b237385c906648f (patch) | |
tree | a0c23b6e97fff3605468cc753addf1d49c74ad81 /gcc/genextract.c | |
parent | d70ba424573058e6bcba5d31131ae0083e413269 (diff) | |
download | gcc-cbb955b0d43c611d8d408f8d1b237385c906648f.tar.gz |
2009-04-08 Paolo Bonzini <bonzini@gnu.org>
* genoutput.c (validate_optab_operands): New.
(gen_insn, gen_expand): Call it.
* genflags.c (gen_insn): Detect misused iterators.
(main): Pass line_no to gen_insn, exit with status 1 on error.
* genextract.c (line_no): Make global.
(VEC_safe_set_locstr): Change assertion to error message.
(main): Exit with status 1 on error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145746 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genextract.c')
-rw-r--r-- | gcc/genextract.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/genextract.c b/gcc/genextract.c index c9831105c36..c414891bb6b 100644 --- a/gcc/genextract.c +++ b/gcc/genextract.c @@ -80,6 +80,8 @@ struct accum_extract VEC(char,heap) *pathstr; }; +int line_no; + /* Forward declarations. */ static void walk_rtx (rtx, struct accum_extract *); @@ -187,8 +189,13 @@ VEC_safe_set_locstr (VEC(locstr,heap) **vp, unsigned int ix, char *str) { if (ix < VEC_length (locstr, *vp)) { - gcc_assert (VEC_index (locstr, *vp, ix) == 0); - VEC_replace (locstr, *vp, ix, str); + if (VEC_index (locstr, *vp, ix)) + { + message_with_line (line_no, "repeated operand number %d", ix); + have_error = 1; + } + else + VEC_replace (locstr, *vp, ix, str); } else { @@ -399,7 +406,6 @@ main (int argc, char **argv) struct code_ptr *link; const char *name; int insn_code_number; - int line_no; progname = "genextract"; @@ -423,6 +429,9 @@ main (int argc, char **argv) } } + if (have_error) + return FATAL_EXIT_CODE; + print_header (); /* Write out code to handle peepholes and the insn_codes that it should |