X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fgenextract.c;h=c414891bb6bfa6788696cd5c97488e89c85fa1c4;hb=c119b8ad7b84d02c43821a2a79330d79395cc462;hp=c9831105c36546226e5ea5e14f215189a26bc45f;hpb=cfaf579ddfaec5cb9bc5d220eadd212786138f3d;p=pf3gnuchains%2Fgcc-fork.git 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