Index: gcc/gcc/genextract.c |
diff --git a/gcc/gcc/genextract.c b/gcc/gcc/genextract.c |
index c9831105c36546226e5ea5e14f215189a26bc45f..c414891bb6bfa6788696cd5c97488e89c85fa1c4 100644 |
--- a/gcc/gcc/genextract.c |
+++ b/gcc/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 |