diff options
author | Nathan Sidwell <nathan@gcc.gnu.org> | 2004-09-09 13:22:38 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2004-09-09 13:22:38 +0000 |
commit | b2d59f6f77221be75b336211de396a8b1603356b (patch) | |
tree | 6fd0a5929e9f5230882fb5d3500103a7daee956f /gcc/genrecog.c | |
parent | 87022a6b0e909befbd0cf98339cd65eede6060f3 (diff) | |
download | gcc-b2d59f6f77221be75b336211de396a8b1603356b.tar.gz |
Makefile.in (gengtype): Use $(BUILD_ERRORS).
* Makefile.in (gengtype): Use $(BUILD_ERRORS).
(gengtype.o): Depend on errors.h.
* genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
(attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
attr_alt_subset_p, attr_alt_subset_of_compl_p,
attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
write_test_expr, write_attr_value, write_eligible_delay,
make_internal_attr, make_numeric_value): Likewise.
* genautomata.c (regexp_name, get_str_vect,
gen_presence_absence_set, automaton_decl_hash,
automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
test_unit_reserv, it_is_empty_reserv_sets,
reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
reserv_sets_and, output_cycle_reservs, get_free_state,
intersected_state_reservs_p, states_union, remove_arc,
copy_insn_regexp, transform_1, transform_2, transform_3,
regexp_transform_func, store_alt_unit_usage,
check_regexp_units_distribution, process_seq_for_forming_states,
process_alts_for_forming_states, make_automaton,
form_arcs_marked_by_insn, create_composed_state,
set_out_arc_insns_equiv_num, partition_equiv_class,
process_insn_equiv_class, set_insn_equiv_classes,
units_to_automata_heuristic_distr, form_regexp,
longest_path_length, output_dfa_max_issue_rate, add_vect,
out_state_arcs_num, add_vect_el, output_trans_table,
output_state_alts_table, output_dead_lock_vect,
output_max_insn_queue_index_def,
output_min_insn_conflict_delay_func,
output_internal_insn_latency_func, output_print_reservation_func,
output_cpu_unit_reservation_p, output_state_arcs,
make_insn_alts_attr, make_internal_dfa_insn_code_attr,
make_default_insn_latency_attr,
form_important_insn_automata_lists): Likewise.
* genemit.c (gen_exp, output_add_clobbers,
output_added_clobbers_hard_reg_p): Likewise.
* genextract.c (print_path, main): Likewise.
* genflags.c (gen_macro): Likewise.
* gengenrtl.c: Include errors.h
(type_from_format, accessor_from_format): Likewise.
* gengtype.c (get_file_basename, output_mangled_typename,
walk_type, write_types_process_field,
write_types_local_process_field): Likewise.
* genmodes.c (complete_mode): Likewise.
* genopinit.c (gen_insn): Likewise.
* genoutput.c (output_insn_data, check_constraint_len,
constraint_len): Likewise.
* genpreds.c (add_mode_tests):Likewise.
* gen-protos.c (add_hash): Likewise.
* genrecog.c (find_operand, find_matching_operand,
validate_pattern, add_to_sequence, maybe_both_true,
nodes_identical_1, merge_trees, write_switch, write_cond,
write_action, is_unconditional, make_insn_sequence,
debug_decision_2): Likewise.
* gensupport.c (is_predicable, collect_insn_data,
alter_predicate_for_insn, maybe_eval_c_test): Likewise.
From-SVN: r87236
Diffstat (limited to 'gcc/genrecog.c')
-rw-r--r-- | gcc/genrecog.c | 68 |
1 files changed, 26 insertions, 42 deletions
diff --git a/gcc/genrecog.c b/gcc/genrecog.c index 097faefe8c2..241c08007ed 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -547,7 +547,7 @@ find_operand (rtx pattern, int n, rtx stop) break; default: - abort (); + gcc_unreachable (); } } @@ -598,7 +598,7 @@ find_matching_operand (rtx pattern, int n) break; default: - abort (); + gcc_unreachable (); } } @@ -851,7 +851,7 @@ validate_pattern (rtx pattern, rtx insn, rtx set, int set_code) break; default: - abort (); + gcc_unreachable (); } } } @@ -1050,18 +1050,18 @@ add_to_sequence (rtx pattern, struct decision_head *last, const char *position, { if (fmt[i] == 'i') { - if (i == 0) + gcc_assert (i < 2); + + if (!i) { test = new_decision_test (DT_elt_zero_int, &place); test->u.intval = XINT (pattern, i); } - else if (i == 1) + else { test = new_decision_test (DT_elt_one_int, &place); test->u.intval = XINT (pattern, i); } - else - abort (); } else if (fmt[i] == 'w') { @@ -1071,16 +1071,14 @@ add_to_sequence (rtx pattern, struct decision_head *last, const char *position, = ((int) XWINT (pattern, i) == XWINT (pattern, i)) ? DT_elt_zero_wide_safe : DT_elt_zero_wide; - if (i != 0) - abort (); + gcc_assert (!i); test = new_decision_test (type, &place); test->u.intval = XWINT (pattern, i); } else if (fmt[i] == 'E') { - if (i != 0) - abort (); + gcc_assert (!i); test = new_decision_test (DT_veclen, &place); test->u.veclen = XVECLEN (pattern, i); @@ -1117,7 +1115,7 @@ add_to_sequence (rtx pattern, struct decision_head *last, const char *position, break; default: - abort (); + gcc_unreachable (); } } @@ -1139,8 +1137,7 @@ add_to_sequence (rtx pattern, struct decision_head *last, const char *position, } /* If we didn't insert any tests or accept nodes, hork. */ - if (this->tests == NULL) - abort (); + gcc_assert (this->tests); ret: free (subpos); @@ -1311,8 +1308,7 @@ maybe_both_true (struct decision *d1, struct decision *d2, cmp = strcmp (d1->position, d2->position); if (cmp != 0) { - if (toplevel) - abort (); + gcc_assert (!toplevel); /* If the d2->position was lexically lower, swap. */ if (cmp > 0) @@ -1390,7 +1386,7 @@ nodes_identical_1 (struct decision_test *d1, struct decision_test *d2) return 1; default: - abort (); + gcc_unreachable (); } } @@ -1492,8 +1488,7 @@ merge_trees (struct decision_head *oldh, struct decision_head *addh) } /* Trying to merge bits at different positions isn't possible. */ - if (strcmp (oldh->first->position, addh->first->position)) - abort (); + gcc_assert (!strcmp (oldh->first->position, addh->first->position)); for (add = addh->first; add ; add = next) { @@ -1989,7 +1984,7 @@ write_switch (struct decision *start, int depth) printf ("(int) XWINT (x%d, 0)", depth); break; default: - abort (); + gcc_unreachable (); } printf (")\n%s {\n", indent); @@ -2022,7 +2017,7 @@ write_switch (struct decision *start, int depth) print_host_wide_int (p->tests->u.intval); break; default: - abort (); + gcc_unreachable (); } printf (":\n%s goto L%d;\n", indent, p->success.first->number); p->success.first->need_label = 1; @@ -2102,21 +2097,13 @@ write_cond (struct decision_test *p, int depth, break; case DT_accept_insn: - switch (subroutine_type) - { - case RECOG: - if (p->u.insn.num_clobbers_to_add == 0) - abort (); - printf ("pnum_clobbers != NULL"); - break; - - default: - abort (); - } + gcc_assert (subroutine_type == RECOG); + gcc_assert (p->u.insn.num_clobbers_to_add); + printf ("pnum_clobbers != NULL"); break; default: - abort (); + gcc_unreachable (); } } @@ -2151,14 +2138,12 @@ write_action (struct decision *p, struct decision_test *test, if (test->next) { test = test->next; - if (test->type != DT_accept_insn) - abort (); + gcc_assert (test->type == DT_accept_insn); } } /* Sanity check that we're now at the end of the list of tests. */ - if (test->next) - abort (); + gcc_assert (!test->next); if (test->type == DT_accept_insn) { @@ -2196,7 +2181,7 @@ write_action (struct decision *p, struct decision_test *test, break; default: - abort (); + gcc_unreachable (); } } else @@ -2231,7 +2216,7 @@ is_unconditional (struct decision_test *t, enum routine_type subroutine_type) case PEEPHOLE2: return -1; default: - abort (); + gcc_unreachable (); } } @@ -2527,8 +2512,7 @@ make_insn_sequence (rtx insn, enum routine_type type) char c_test_pos[2]; /* We should never see an insn whose C test is false at compile time. */ - if (truth == 0) - abort (); + gcc_assert (truth); record_insn_name (next_insn_code, (type == RECOG ? XSTR (insn, 0) : NULL)); @@ -2874,7 +2858,7 @@ debug_decision_2 (struct decision_test *test) break; default: - abort (); + gcc_unreachable (); } } |