alias.c (true_dependence): Remove 'abort' from comments.
authorNathan Sidwell <nathan@gcc.gnu.org>
Thu, 21 Apr 2005 15:47:33 +0000 (15:47 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Thu, 21 Apr 2005 15:47:33 +0000 (15:47 +0000)
* alias.c (true_dependence): Remove 'abort' from comments. Use
gcc_assert and gcc_unreachable as appropriate.
(canon_true_dependence): Likewise.
* bb-reorder.c (connect_traces): Likewise.
* c-common.c (c_add_case_label): Likewise.
* c-decl.c (finish_function): Likewise.
* caller-save.c (insert_restore, insert_save): Likewise.
* cfg.c (update_bb_profile_for_threading): Likewise.
* cfganal.c (flow_active_insn_p): Likewise.
* cfgexpand.c (add_reg_br_prob_note): Likewise.
* cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
cfg_layout_merge_blocks): Likewise.
* ifcvt.c (cond_exec_process_insns, merge_if_block,
find_if_block): Likewise.
* integrate.c (allocate_initial_values): Likewise.
* jump.c (reverse_condition, reverse_condition_maybe_unordered,
swap_condition, unsigned_condition, signed_condition,
mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
reg_or_subregno): Likewise.
* lambda-code.c (lambda_compute_auxillary_space,
lambda_transform_legal_p): Likewise.
* lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
* langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
lhd_incomplete_type_error, lhd_expand_expr,
lhd_types_compatible_p, lhd_tree_size): Likewise.
* lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
* local-alloc.c (update_equiv_regs): Likewise.
* loop-unroll.c (peel_loop_completely
unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
peel_loop_simple, unroll_loop_stupid,
analyze_iv_to_split_insn): Likewise.
* loop.c (gen_prefetch, find_and_verify_loops,
basic_induction_var): Likewise.
* modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
* value-prof.c (tree_find_values_to_profile): Likewise.
* varasm.c (named_section, default_assemble_integer,
decode_addr_const): Likewise.

From-SVN: r98508

23 files changed:
gcc/ChangeLog
gcc/alias.c
gcc/bb-reorder.c
gcc/c-common.c
gcc/c-decl.c
gcc/caller-save.c
gcc/cfg.c
gcc/cfganal.c
gcc/cfgexpand.c
gcc/cfgrtl.c
gcc/ifcvt.c
gcc/integrate.c
gcc/jump.c
gcc/lambda-code.c
gcc/lambda-mat.c
gcc/langhooks.c
gcc/lcm.c
gcc/local-alloc.c
gcc/loop-unroll.c
gcc/loop.c
gcc/modulo-sched.c
gcc/value-prof.c
gcc/varasm.c

index 7ab26e5894a3fba1ec9ba1421b0bd0603b7f2329..d148538224a8d2af5d6e17b63becebcb76d85d4d 100644 (file)
@@ -1,10 +1,50 @@
+2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * alias.c (true_dependence): Remove 'abort' from comments. Use
+       gcc_assert and gcc_unreachable as appropriate.
+       (canon_true_dependence): Likewise.
+       * bb-reorder.c (connect_traces): Likewise.
+       * c-common.c (c_add_case_label): Likewise.
+       * c-decl.c (finish_function): Likewise.
+       * caller-save.c (insert_restore, insert_save): Likewise.
+       * cfg.c (update_bb_profile_for_threading): Likewise.
+       * cfganal.c (flow_active_insn_p): Likewise.
+       * cfgexpand.c (add_reg_br_prob_note): Likewise.
+       * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
+       cfg_layout_merge_blocks): Likewise.
+       * ifcvt.c (cond_exec_process_insns, merge_if_block,
+       find_if_block): Likewise.
+       * integrate.c (allocate_initial_values): Likewise.
+       * jump.c (reverse_condition, reverse_condition_maybe_unordered,
+       swap_condition, unsigned_condition, signed_condition,
+       mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
+       reg_or_subregno): Likewise.
+       * lambda-code.c (lambda_compute_auxillary_space,
+       lambda_transform_legal_p): Likewise.
+       * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
+       * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
+       lhd_incomplete_type_error, lhd_expand_expr,
+       lhd_types_compatible_p, lhd_tree_size): Likewise.
+       * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
+       * local-alloc.c (update_equiv_regs): Likewise.
+       * loop-unroll.c (peel_loop_completely
+       unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
+       peel_loop_simple, unroll_loop_stupid,
+       analyze_iv_to_split_insn): Likewise.
+       * loop.c (gen_prefetch, find_and_verify_loops,
+       basic_induction_var): Likewise.
+       * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
+       * value-prof.c (tree_find_values_to_profile): Likewise.
+       * varasm.c (named_section, default_assemble_integer,
+       decode_addr_const): Likewise.
+
 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
            Fariborz Jahanian <fjahanian@apple.com>
 
-        * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
-        portion of argument passed in fpr.
-        *expr.c (emit_push_insn): Fix computation of 'offset' used to
-        decide on partial argument save on stack.
+       * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
+       portion of argument passed in fpr.
+       expr.c (emit_push_insn): Fix computation of 'offset' used to
+       decide on partial argument save on stack.
 
 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
 
@@ -29,6 +69,8 @@
        (ipa_passes): Declare.
        * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
 
+2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
+
 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
 
        * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
index a0f77d559a119bca7c49661a2609e2a3c28e3e2c..a36e1d570287d628fccfa7d575911ec0483d28a8 100644 (file)
@@ -2141,7 +2141,7 @@ true_dependence (rtx mem, enum machine_mode mem_mode, rtx x,
 
   /* Read-only memory is by definition never modified, and therefore can't
      conflict with anything.  We don't expect to find read-only set on MEM,
-     but stupid user tricks can produce them, so don't abort.  */
+     but stupid user tricks can produce them, so don't die.  */
   if (MEM_READONLY_P (x))
     return 0;
 
@@ -2214,7 +2214,7 @@ canon_true_dependence (rtx mem, enum machine_mode mem_mode, rtx mem_addr,
 
   /* Read-only memory is by definition never modified, and therefore can't
      conflict with anything.  We don't expect to find read-only set on MEM,
-     but stupid user tricks can produce them, so don't abort.  */
+     but stupid user tricks can produce them, so don't die.  */
   if (MEM_READONLY_P (x))
     return 0;
 
index 6925114e133ddc3ed9b24a9bb928f77f4fcde00a..cc0844e92d5214f6c36fa75b314e4cfbad38f357 100644 (file)
@@ -926,18 +926,14 @@ connect_traces (int n_traces, struct trace *traces)
 
       if (i >= n_traces)
        {
-         if (two_passes && current_pass == 1)
-           {
-             i = 0;
-             t = i;
-             current_pass = 2;
-             if (current_partition == BB_HOT_PARTITION)
-               current_partition = BB_COLD_PARTITION;
-             else
-               current_partition = BB_HOT_PARTITION;
-           }
+         gcc_assert (two_passes && current_pass == 1);
+         i = 0;
+         t = i;
+         current_pass = 2;
+         if (current_partition == BB_HOT_PARTITION)
+           current_partition = BB_COLD_PARTITION;
          else
-           abort ();
+           current_partition = BB_HOT_PARTITION;
        }
       
       if (connected[t])
index 7f1ac51eba01d930dce636638dd972368e9af62b..ab23903f6eab29fa602999b587cbe5b5cd2c3765 100644 (file)
@@ -3635,7 +3635,7 @@ c_add_case_label (splay_tree cases, tree cond, tree orig_type,
  error_out:
   /* Add a label so that the back-end doesn't think that the beginning of
      the switch is unreachable.  Note that we do not add a case label, as
-     that just leads to duplicates and thence to aborts later on.  */
+     that just leads to duplicates and thence to failure later on.  */
   if (!cases->root)
     {
       tree t = create_artificial_label ();
index 5140a0fa5ed1cf9ccbed3dddeef9eeb24f52862e..70b2d8364b584038fff88ceefe45f70ae25ef9c3 100644 (file)
@@ -6323,7 +6323,7 @@ finish_function (void)
   if (warn_return_type
       && TREE_CODE (TREE_TYPE (TREE_TYPE (fndecl))) != VOID_TYPE
       && !current_function_returns_value && !current_function_returns_null
-      /* Don't complain if we abort.  */
+      /* Don't complain if we are no-return.  */
       && !current_function_returns_abnormally
       /* Don't warn for main().  */
       && !MAIN_NAME_P (DECL_NAME (fndecl))
index 26be6176fb6a35432b1924cb88859510c51e1c9b..5d8e649c1321e0af6fc14780c46a3159e9b37cff 100644 (file)
@@ -637,12 +637,12 @@ insert_restore (struct insn_chain *chain, int before_p, int regno,
   struct insn_chain *new;
   rtx mem;
 
-  /* A common failure mode if register status is not correct in the RTL
-     is for this routine to be called with a REGNO we didn't expect to
-     save.  That will cause us to write an insn with a (nil) SET_DEST
-     or SET_SRC.  Instead of doing so and causing a crash later, check
-     for this common case and abort here instead.  This will remove one
-     step in debugging such problems.  */
+  /* A common failure mode if register status is not correct in the
+     RTL is for this routine to be called with a REGNO we didn't
+     expect to save.  That will cause us to write an insn with a (nil)
+     SET_DEST or SET_SRC.  Instead of doing so and causing a crash
+     later, check for this common case here instead.  This will remove
+     one step in debugging such problems.  */
   gcc_assert (regno_save_mem[regno][1]);
 
   /* Get the pattern to emit and update our status.
@@ -710,11 +710,11 @@ insert_save (struct insn_chain *chain, int before_p, int regno,
   struct insn_chain *new;
   rtx mem;
 
-  /* A common failure mode if register status is not correct in the RTL
-     is for this routine to be called with a REGNO we didn't expect to
-     save.  That will cause us to write an insn with a (nil) SET_DEST
-     or SET_SRC.  Instead of doing so and causing a crash later, check
-     for this common case and abort here instead.  This will remove one
+  /* A common failure mode if register status is not correct in the
+     RTL is for this routine to be called with a REGNO we didn't
+     expect to save.  That will cause us to write an insn with a (nil)
+     SET_DEST or SET_SRC.  Instead of doing so and causing a crash
+     later, check for this common case here.  This will remove one
      step in debugging such problems.  */
   gcc_assert (regno_save_mem[regno][1]);
 
index 85d922eae85ed62846aba77d1a70d30e36998895..432cea5a1b4141e15f18b8c39bc3613e2bae8ecc 100644 (file)
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -895,8 +895,7 @@ update_bb_profile_for_threading (basic_block bb, int edge_frequency,
        c->probability *= scale / 65536;
     }
 
-  if (bb != taken_edge->src)
-    abort ();
+  gcc_assert (bb == taken_edge->src);
   taken_edge->count -= count;
   if (taken_edge->count < 0)
     taken_edge->count = 0;
index 5afbabc19e001bcad5ef4497cc9bb6341c8d87ba..6c707729b70547dfd6f590f119863a2cfc6c988e 100644 (file)
@@ -69,7 +69,7 @@ flow_active_insn_p (rtx insn)
      programs that fail to return a value.  Its effect is to
      keep the return value from being live across the entire
      function.  If we allow it to be skipped, we introduce the
-     possibility for register livetime aborts.  */
+     possibility for register lifetime confusion.  */
   if (GET_CODE (PATTERN (insn)) == CLOBBER
       && REG_P (XEXP (PATTERN (insn), 0))
       && REG_FUNCTION_VALUE_P (XEXP (PATTERN (insn), 0)))
index f7a2f1e14396669910eb01fc8bbad7acc7710f84..e894b7791160fc3e52950b81b65594f74b0877d5 100644 (file)
@@ -60,8 +60,7 @@ add_reg_br_prob_note (FILE *dump_file, rtx last, int probability)
            || GET_CODE (NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))) != CODE_LABEL
            || NEXT_INSN (NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))))
          goto failed;
-       if (find_reg_note (last, REG_BR_PROB, 0))
-         abort ();
+       gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
        REG_NOTES (last)
          = gen_rtx_EXPR_LIST (REG_BR_PROB,
                               GEN_INT (REG_BR_PROB_BASE - probability),
@@ -69,9 +68,8 @@ add_reg_br_prob_note (FILE *dump_file, rtx last, int probability)
        return;
       }
   if (!last || GET_CODE (last) != JUMP_INSN || !any_condjump_p (last))
-      goto failed;
-  if (find_reg_note (last, REG_BR_PROB, 0))
-    abort ();
+    goto failed;
+  gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
   REG_NOTES (last)
     = gen_rtx_EXPR_LIST (REG_BR_PROB,
                         GEN_INT (probability), REG_NOTES (last));
index f14e44e05a14125b2de6c7da08085ed29e348ad8..c1bbb1a52aa4a3eb471d3098ac06faf26c56f0fc 100644 (file)
@@ -1165,7 +1165,7 @@ force_nonfallthru (edge e)
 
 /* Redirect edge even at the expense of creating new jump insn or
    basic block.  Return new basic block if created, NULL otherwise.
-   Abort if conversion is impossible.  */
+   Conversion must be possible.  */
 
 static basic_block
 rtl_redirect_edge_and_branch_force (edge e, basic_block target)
@@ -1277,7 +1277,7 @@ rtl_move_block_after (basic_block bb ATTRIBUTE_UNUSED,
 }
 
 /* Split a (typically critical) edge.  Return the new block.
-   Abort on abnormal edges.
+   The edge must not be abnormal.
 
    ??? The code generally expects to be called on critical edges.
    The case of a block ending in an unconditional jump to a
@@ -2695,7 +2695,8 @@ cfg_layout_can_merge_blocks_p (basic_block a, basic_block b)
                  ? simplejump_p (BB_END (a)) : onlyjump_p (BB_END (a)))));
 }
 
-/* Merge block A and B, abort when it is not possible.  */
+/* Merge block A and B.  The blocks must be mergeable.  */
+
 static void
 cfg_layout_merge_blocks (basic_block a, basic_block b)
 {
index 8801b8f53f6b4068c67955409061bea72ade7672..8367316847f3c46a5e85c807d08d26a14f1862e8 100644 (file)
@@ -269,8 +269,7 @@ cond_exec_process_insns (ce_if_block_t *ce_info ATTRIBUTE_UNUSED,
       if (NOTE_P (insn))
        goto insn_done;
 
-      if (!NONJUMP_INSN_P (insn) && !CALL_P (insn))
-       abort ();
+      gcc_assert(NONJUMP_INSN_P (insn) || CALL_P (insn));
 
       /* Remove USE insns that get in the way.  */
       if (reload_completed && GET_CODE (PATTERN (insn)) == USE)
@@ -2228,30 +2227,21 @@ merge_if_block (struct ce_if_block * ce_info)
       /* The outgoing edge for the current COMBO block should already
         be correct.  Verify this.  */
       if (EDGE_COUNT (combo_bb->succs) == 0)
-       {
-         if (find_reg_note (last, REG_NORETURN, NULL))
-           ;
-         else if (NONJUMP_INSN_P (last)
-                  && GET_CODE (PATTERN (last)) == TRAP_IF
-                  && TRAP_CONDITION (PATTERN (last)) == const_true_rtx)
-           ;
-         else
-           abort ();
-       }
+       gcc_assert (find_reg_note (last, REG_NORETURN, NULL)
+                   || (NONJUMP_INSN_P (last)
+                       && GET_CODE (PATTERN (last)) == TRAP_IF
+                       && (TRAP_CONDITION (PATTERN (last))
+                           == const_true_rtx)));
 
+      else
       /* There should still be something at the end of the THEN or ELSE
          blocks taking us to our final destination.  */
-      else if (JUMP_P (last))
-       ;
-      else if (EDGE_SUCC (combo_bb, 0)->dest == EXIT_BLOCK_PTR
-              && CALL_P (last)
-              && SIBLING_CALL_P (last))
-       ;
-      else if ((EDGE_SUCC (combo_bb, 0)->flags & EDGE_EH)
-              && can_throw_internal (last))
-       ;
-      else
-       abort ();
+       gcc_assert (JUMP_P (last)
+                   || (EDGE_SUCC (combo_bb, 0)->dest == EXIT_BLOCK_PTR
+                       && CALL_P (last)
+                       && SIBLING_CALL_P (last))
+                   || ((EDGE_SUCC (combo_bb, 0)->flags & EDGE_EH)
+                       && can_throw_internal (last)));
     }
 
   /* The JOIN block may have had quite a number of other predecessors too.
@@ -2259,7 +2249,7 @@ merge_if_block (struct ce_if_block * ce_info)
      have only one remaining edge from our if-then-else diamond.  If there
      is more than one remaining edge, it must come from elsewhere.  There
      may be zero incoming edges if the THEN block didn't actually join
-     back up (as with a call to abort).  */
+     back up (as with a call to a non-return function).  */
   else if (EDGE_COUNT (join_bb->preds) < 2
           && join_bb != EXIT_BLOCK_PTR)
     {
@@ -2626,7 +2616,7 @@ find_if_block (struct ce_if_block * ce_info)
      we checked the FALLTHRU flag, those are already adjacent to the last IF
      block.  */
   /* ??? As an enhancement, move the ELSE block.  Have to deal with
-     BLOCK notes, if by no other means than aborting the merge if they
+     BLOCK notes, if by no other means than backing out the merge if they
      exist.  Sticky enough I don't want to think about it now.  */
   next = then_bb;
   if (else_bb && (next = next->next_bb) != else_bb)
index 135bd1d38b85f193279a8a3fb39f3878292793ed..22a7c4021ce971fee43d65638944430b9d2e1882 100644 (file)
@@ -389,18 +389,19 @@ allocate_initial_values (rtx *reg_equiv_memory_loc ATTRIBUTE_UNUSED)
       int regno = REGNO (ivs->entries[i].pseudo);
       rtx x = ALLOCATE_INITIAL_VALUE (ivs->entries[i].hard_reg);
 
-      if (x == NULL_RTX || REG_N_SETS (REGNO (ivs->entries[i].pseudo)) > 1)
-       ; /* Do nothing.  */
-      else if (MEM_P (x))
-       reg_equiv_memory_loc[regno] = x;
-      else if (REG_P (x))
+      if (x && REG_N_SETS (REGNO (ivs->entries[i].pseudo)) <= 1)
        {
-         reg_renumber[regno] = REGNO (x);
-         /* Poke the regno right into regno_reg_rtx
-            so that even fixed regs are accepted.  */
-         REGNO (ivs->entries[i].pseudo) = REGNO (x);
+         if (MEM_P (x))
+           reg_equiv_memory_loc[regno] = x;
+         else
+           {
+             gcc_assert (REG_P (x));
+             reg_renumber[regno] = REGNO (x);
+             /* Poke the regno right into regno_reg_rtx so that even
+                fixed regs are accepted.  */
+             REGNO (ivs->entries[i].pseudo) = REGNO (x);
+           }
        }
-      else abort ();
     }
 #endif
 }
index dc81c52185147cc1bde376804e111ddf6eaa315d..74a6c69b861220ea67a4deba66abf788456a91d9 100644 (file)
@@ -511,7 +511,7 @@ reverse_condition (enum rtx_code code)
       return UNKNOWN;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 
@@ -554,7 +554,7 @@ reverse_condition_maybe_unordered (enum rtx_code code)
       return LTGT;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 
@@ -600,7 +600,7 @@ swap_condition (enum rtx_code code)
       return UNLE;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 
@@ -631,7 +631,7 @@ unsigned_condition (enum rtx_code code)
       return LEU;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 
@@ -660,7 +660,7 @@ signed_condition (enum rtx_code code)
       return LE;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 \f
@@ -1109,8 +1109,7 @@ mark_jump_label (rtx x, rtx insn, int in_mem)
            && NOTE_LINE_NUMBER (label) == NOTE_INSN_DELETED_LABEL)
          break;
 
-       if (!LABEL_P (label))
-         abort ();
+       gcc_assert (LABEL_P (label));
 
        /* Ignore references to labels of containing functions.  */
        if (LABEL_REF_NONLOCAL_P (x))
@@ -1723,10 +1722,13 @@ invert_jump_1 (rtx jump, rtx nlabel)
 {
   rtx x = pc_set (jump);
   int ochanges;
+  int ok;
 
   ochanges = num_validated_changes ();
-  if (!x || !invert_exp_1 (SET_SRC (x), jump))
-    abort ();
+  gcc_assert (x);
+  ok = invert_exp_1 (SET_SRC (x), jump);
+  gcc_assert (ok);
+  
   if (num_validated_changes () == ochanges)
     return 0;
 
@@ -1941,7 +1943,7 @@ rtx_renumbered_equal_p (rtx x, rtx y)
          break;
 
        default:
-         abort ();
+         gcc_unreachable ();
        }
     }
   return 1;
@@ -1976,9 +1978,8 @@ true_regnum (rtx x)
 unsigned int
 reg_or_subregno (rtx reg)
 {
-  if (REG_P (reg))
-    return REGNO (reg);
   if (GET_CODE (reg) == SUBREG)
-    return REGNO (SUBREG_REG (reg));
-  abort ();
+    reg = SUBREG_REG (reg);
+  gcc_assert (REG_P (reg));
+  return REGNO (reg);
 }
index da24e95255e80d768d39abfdd96d92cf814c2a8a..fbfcdf9f8dc693a45ecd7ea9913355ca4ebefb93 100644 (file)
@@ -687,7 +687,7 @@ lambda_compute_auxillary_space (lambda_loopnest nest,
 
   /* Unfortunately, we can't know the number of constraints we'll have
      ahead of time, but this should be enough even in ridiculous loop nest
-     cases. We abort if we go over this limit.  */
+     cases. We must not go over this limit.  */
   A = lambda_matrix_new (128, depth);
   B = lambda_matrix_new (128, invariants);
   a = lambda_vector_new (128);
@@ -2483,11 +2483,8 @@ lambda_transform_legal_p (lambda_trans_matrix trans,
   lambda_vector distres;
   struct data_dependence_relation *ddr;
 
-#if defined ENABLE_CHECKING
-  if (LTM_COLSIZE (trans) != nb_loops
-      || LTM_ROWSIZE (trans) != nb_loops)
-    abort ();
-#endif
+  gcc_assert (LTM_COLSIZE (trans) == nb_loops
+             && LTM_ROWSIZE (trans) == nb_loops);
 
   /* When there is an unknown relation in the dependence_relations, we
      know that it is no worth looking at this loop nest: give up.  */
index 8aa3c12a70a0f01f77885a35c4a0aefe522a0f62..8de0e985dcce1b1aad2e0a602bbbd4b11f031e1c 100644 (file)
@@ -401,9 +401,8 @@ lambda_matrix_inverse_hard (lambda_matrix mat, lambda_matrix inv, int n)
       row = temp[j];
       diagonal = row[j];
 
-      /* If the matrix is singular, abort.  */
-      if (diagonal == 0)
-       abort ();
+      /* The matrix must not be singular.  */
+      gcc_assert (diagonal);
 
       determinant = determinant * diagonal;
 
index 12119a88fa1ca1ad974879b05dee985315ffc596..94e08e6f8cbeec57358bc7edccfc1dd67e22831b 100644 (file)
@@ -158,37 +158,31 @@ lhd_set_decl_assembler_name (tree decl)
      DECL_ASSEMBLER_NAME for lots of DECLs.  Only FUNCTION_DECLs and
      VAR_DECLs for variables with static storage duration need a real
      DECL_ASSEMBLER_NAME.  */
-  if (TREE_CODE (decl) == FUNCTION_DECL
-      || (TREE_CODE (decl) == VAR_DECL
-         && (TREE_STATIC (decl)
-             || DECL_EXTERNAL (decl)
-             || TREE_PUBLIC (decl))))
+  gcc_assert (TREE_CODE (decl) == FUNCTION_DECL
+             || (TREE_CODE (decl) == VAR_DECL
+                 && (TREE_STATIC (decl)
+                     || DECL_EXTERNAL (decl)
+                     || TREE_PUBLIC (decl))));
+  
+  /* By default, assume the name to use in assembly code is the same
+     as that used in the source language.  (That's correct for C, and
+     GCC used to set DECL_ASSEMBLER_NAME to the same value as
+     DECL_NAME in build_decl, so this choice provides backwards
+     compatibility with existing front-ends.
+      
+     Can't use just the variable's own name for a variable whose scope
+     is less than the whole compilation.  Concatenate a distinguishing
+     number - we use the DECL_UID.  */
+  if (TREE_PUBLIC (decl) || DECL_CONTEXT (decl) == NULL_TREE)
+    SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl));
+  else
     {
-      /* By default, assume the name to use in assembly code is the
-        same as that used in the source language.  (That's correct
-        for C, and GCC used to set DECL_ASSEMBLER_NAME to the same
-        value as DECL_NAME in build_decl, so this choice provides
-        backwards compatibility with existing front-ends.
-
-         Can't use just the variable's own name for a variable whose
-        scope is less than the whole compilation.  Concatenate a
-        distinguishing number - we use the DECL_UID.  */
-      if (TREE_PUBLIC (decl) || DECL_CONTEXT (decl) == NULL_TREE)
-       SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl));
-      else
-       {
-         const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
-         char *label;
-
-         ASM_FORMAT_PRIVATE_NAME (label, name, DECL_UID (decl));
-         SET_DECL_ASSEMBLER_NAME (decl, get_identifier (label));
-       }
+      const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
+      char *label;
+      
+      ASM_FORMAT_PRIVATE_NAME (label, name, DECL_UID (decl));
+      SET_DECL_ASSEMBLER_NAME (decl, get_identifier (label));
     }
-  else
-    /* Nobody should ever be asking for the DECL_ASSEMBLER_NAME of
-       these DECLs -- unless they're in language-dependent code, in
-       which case set_decl_assembler_name hook should handle things.  */
-    abort ();
 }
 
 /* By default we always allow bit-field based optimizations.  */
@@ -202,7 +196,7 @@ lhd_can_use_bit_fields_p (void)
 tree
 lhd_type_promotes_to (tree ARG_UNUSED (type))
 {
-  abort ();
+  gcc_unreachable ();
 }
 
 /* Registration of machine- or os-specific builtin types.  */
@@ -216,10 +210,8 @@ lhd_register_builtin_type (tree ARG_UNUSED (type),
 void
 lhd_incomplete_type_error (tree ARG_UNUSED (value), tree type)
 {
-  if (TREE_CODE (type) == ERROR_MARK)
-    return;
-
-  abort ();
+  gcc_assert (TREE_CODE (type) == ERROR_MARK);
+  return;
 }
 
 /* Provide a default routine for alias sets that always returns -1.  This
@@ -248,7 +240,7 @@ lhd_expand_expr (tree ARG_UNUSED (t), rtx ARG_UNUSED (r),
                 int ARG_UNUSED (em),
                 rtx * ARG_UNUSED (a))
 {
-  abort ();
+  gcc_unreachable ();
 }
 
 /* The default language-specific function for expanding a decl.  After
@@ -288,10 +280,10 @@ lhd_types_compatible_p (tree x, tree y)
    handle language-specific tree codes, as well as language-specific
    information associated to common tree codes.  If a tree node is
    completely handled within this function, it should set *SUBTREES to
-   0, so that generic handling isn't attempted.  For language-specific
-   tree codes, generic handling would abort(), so make sure it is set
-   properly.  Both SUBTREES and *SUBTREES is guaranteed to be nonzero
-   when the function is called.  */
+   0, so that generic handling isn't attempted.  The generic handling
+   cannot deal with language-specific tree codes, so make sure it is
+   set properly.  Both SUBTREES and *SUBTREES is guaranteed to be
+   nonzero when the function is called.  */
 
 tree
 lhd_tree_inlining_walk_subtrees (tree *tp ATTRIBUTE_UNUSED,
@@ -444,8 +436,7 @@ lhd_gimplify_expr (tree *expr_p ATTRIBUTE_UNUSED, tree *pre_p ATTRIBUTE_UNUSED,
 size_t
 lhd_tree_size (enum tree_code c ATTRIBUTE_UNUSED)
 {
-  abort ();
-  return 0;
+  gcc_unreachable ();
 }
 
 /* Return true if decl, which is a function decl, may be called by a
index 4f2f4062ce6950bd0eaf6b6630f0241d392688ba..d62bbb01a1228b9bfbee7b0bf588d3caeeee3ff1 100644 (file)
--- a/gcc/lcm.c
+++ b/gcc/lcm.c
@@ -1101,23 +1101,27 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
                last_insn = return_copy;
              }
            while (nregs);
+           
            /* If we didn't see a full return value copy, verify that there
               is a plausible reason for this.  If some, but not all of the
               return register is likely spilled, we can expect that there
               is a copy for the likely spilled part.  */
-           if (nregs
-               && ! forced_late_switch
-               && ! short_block
-               && CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (ret_start))
-               && nregs == hard_regno_nregs[ret_start][GET_MODE (ret_reg)]
-               /* For multi-hard-register floating point values,
-                  sometimes the likely-spilled part is ordinarily copied
-                  first, then the other part is set with an arithmetic
-                  operation.  This doesn't actually cause reload failures,
-                  so let it pass.  */
-               && (GET_MODE_CLASS (GET_MODE (ret_reg)) == MODE_INT
-                   || nregs == 1))
-             abort ();
+           gcc_assert (!nregs
+                       || forced_late_switch
+                       || short_block
+                       || !(CLASS_LIKELY_SPILLED_P
+                            (REGNO_REG_CLASS (ret_start)))
+                       || (nregs
+                           != hard_regno_nregs[ret_start][GET_MODE (ret_reg)])
+                       /* For multi-hard-register floating point
+                          values, sometimes the likely-spilled part
+                          is ordinarily copied first, then the other
+                          part is set with an arithmetic operation.
+                          This doesn't actually cause reload
+                          failures, so let it pass.  */
+                       || (GET_MODE_CLASS (GET_MODE (ret_reg)) != MODE_INT
+                           && nregs != 1));
+           
            if (INSN_P (last_insn))
              {
                before_return_copy
@@ -1370,21 +1374,23 @@ optimize_mode_switching (FILE *file)
                  emited = true;
                  if (JUMP_P (BB_END (src_bb)))
                    emit_insn_before (mode_set, BB_END (src_bb));
-                 /* It doesn't make sense to switch to normal mode
-                    after a CALL_INSN, so we're going to abort if we
-                    find one.  The cases in which a CALL_INSN may
-                    have an abnormal edge are sibcalls and EH edges.
-                    In the case of sibcalls, the dest basic-block is
-                    the EXIT_BLOCK, that runs in normal mode; it is
-                    assumed that a sibcall insn requires normal mode
-                    itself, so no mode switch would be required after
-                    the call (it wouldn't make sense, anyway).  In
-                    the case of EH edges, EH entry points also start
-                    in normal mode, so a similar reasoning applies.  */
-                 else if (NONJUMP_INSN_P (BB_END (src_bb)))
-                   emit_insn_after (mode_set, BB_END (src_bb));
                  else
-                   abort ();
+                   {
+                     /* It doesn't make sense to switch to normal
+                        mode after a CALL_INSN.  The cases in which a
+                        CALL_INSN may have an abnormal edge are
+                        sibcalls and EH edges.  In the case of
+                        sibcalls, the dest basic-block is the
+                        EXIT_BLOCK, that runs in normal mode; it is
+                        assumed that a sibcall insn requires normal
+                        mode itself, so no mode switch would be
+                        required after the call (it wouldn't make
+                        sense, anyway).  In the case of EH edges, EH
+                        entry points also start in normal mode, so a
+                        similar reasoning applies.  */
+                     gcc_assert (NONJUMP_INSN_P (BB_END (src_bb)));
+                     emit_insn_after (mode_set, BB_END (src_bb));
+                   }
                  bb_info[j][src_bb->index].computing = mode;
                  RESET_BIT (transp[src_bb->index], j);
                }
index 3969a86c2ece9dcd370133f5723eb790769cc36f..2caeafcaa9c4e75f08dbdcf2ee03b32e9446e326 100644 (file)
@@ -1088,8 +1088,9 @@ update_equiv_regs (void)
                      REG_NOTES (new_insn) = REG_NOTES (equiv_insn);
                      REG_NOTES (equiv_insn) = 0;
 
-                     /* Make sure this insn is recognized before reload begins,
-                        otherwise eliminate_regs_in_insn will abort.  */
+                     /* Make sure this insn is recognized before
+                        reload begins, otherwise
+                        eliminate_regs_in_insn will die.  */
                      INSN_CODE (new_insn) = INSN_CODE (equiv_insn);
 
                      delete_insn (equiv_insn);
index ab3828d9d020d72614eae568de2ff18103fd9ea1..c93170c3bd0d2f69100ee9aa55614d499c4513e5 100644 (file)
@@ -495,6 +495,8 @@ peel_loop_completely (struct loops *loops, struct loop *loop)
 
   if (npeel)
     {
+      bool ok;
+      
       wont_exit = sbitmap_alloc (npeel + 1);
       sbitmap_ones (wont_exit);
       RESET_BIT (wont_exit, 0);
@@ -508,11 +510,12 @@ peel_loop_completely (struct loops *loops, struct loop *loop)
         opt_info = analyze_insns_in_loop (loop);
       
       opt_info_start_duplication (opt_info);
-      if (!duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
-               loops, npeel,
-               wont_exit, desc->out_edge, remove_edges, &n_remove_edges,
-               DLTHE_FLAG_UPDATE_FREQ))
-       abort ();
+      ok = duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
+                                         loops, npeel,
+                                         wont_exit, desc->out_edge,
+                                         remove_edges, &n_remove_edges,
+                                         DLTHE_FLAG_UPDATE_FREQ);
+      gcc_assert (ok);
 
       free (wont_exit);
       
@@ -670,6 +673,7 @@ unroll_loop_constant_iterations (struct loops *loops, struct loop *loop)
   struct niter_desc *desc = get_simple_loop_desc (loop);
   bool exit_at_end = loop_exit_at_end_p (loop);
   struct opt_info *opt_info = NULL;
+  bool ok;
   
   niter = desc->niter;
 
@@ -704,12 +708,12 @@ unroll_loop_constant_iterations (struct loops *loops, struct loop *loop)
       if (exit_mod)
        {
          opt_info_start_duplication (opt_info);
-          if (!duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
+          ok = duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
                                              loops, exit_mod,
                                              wont_exit, desc->out_edge,
                                              remove_edges, &n_remove_edges,
-                                             DLTHE_FLAG_UPDATE_FREQ))
-           abort ();
+                                             DLTHE_FLAG_UPDATE_FREQ);
+         gcc_assert (ok);
 
           if (opt_info && exit_mod > 1)
            apply_opt_in_copies (opt_info, exit_mod, false, false); 
@@ -740,11 +744,12 @@ unroll_loop_constant_iterations (struct loops *loops, struct loop *loop)
            RESET_BIT (wont_exit, 1);
          
           opt_info_start_duplication (opt_info);
-         if (!duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
-               loops, exit_mod + 1,
-               wont_exit, desc->out_edge, remove_edges, &n_remove_edges,
-               DLTHE_FLAG_UPDATE_FREQ))
-           abort ();
+         ok = duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
+                                             loops, exit_mod + 1,
+                                             wont_exit, desc->out_edge,
+                                             remove_edges, &n_remove_edges,
+                                             DLTHE_FLAG_UPDATE_FREQ);
+         gcc_assert (ok);
  
           if (opt_info && exit_mod > 0)
            apply_opt_in_copies (opt_info, exit_mod + 1, false, false);
@@ -763,11 +768,12 @@ unroll_loop_constant_iterations (struct loops *loops, struct loop *loop)
   /* Now unroll the loop.  */
   
   opt_info_start_duplication (opt_info);
-  if (!duplicate_loop_to_header_edge (loop, loop_latch_edge (loop),
-               loops, max_unroll,
-               wont_exit, desc->out_edge, remove_edges, &n_remove_edges,
-               DLTHE_FLAG_UPDATE_FREQ))
-    abort ();
+  ok = duplicate_loop_to_header_edge (loop, loop_latch_edge (loop),
+                                     loops, max_unroll,
+                                     wont_exit, desc->out_edge,
+                                     remove_edges, &n_remove_edges,
+                                     DLTHE_FLAG_UPDATE_FREQ);
+  gcc_assert (ok);
 
   if (opt_info)
     {
@@ -935,6 +941,7 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
   struct niter_desc *desc = get_simple_loop_desc (loop);
   bool exit_at_end = loop_exit_at_end_p (loop);
   struct opt_info *opt_info = NULL;
+  bool ok;
   
   if (flag_split_ivs_in_unroller
       || flag_variable_expansion_in_unroller)
@@ -1013,11 +1020,12 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
       && !desc->noloop_assumptions)
     SET_BIT (wont_exit, 1);
   ezc_swtch = loop_preheader_edge (loop)->src;
-  if (!duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
-               loops, 1,
-               wont_exit, desc->out_edge, remove_edges, &n_remove_edges,
-               DLTHE_FLAG_UPDATE_FREQ))
-    abort ();
+  ok = duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
+                                     loops, 1,
+                                     wont_exit, desc->out_edge,
+                                     remove_edges, &n_remove_edges,
+                                     DLTHE_FLAG_UPDATE_FREQ);
+  gcc_assert (ok);
 
   /* Record the place where switch will be built for preconditioning.  */
   swtch = loop_split_edge_with (loop_preheader_edge (loop),
@@ -1029,11 +1037,12 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
       sbitmap_zero (wont_exit);
       if (i != n_peel - 1 || !last_may_exit)
        SET_BIT (wont_exit, 1);
-      if (!duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
-               loops, 1,
-               wont_exit, desc->out_edge, remove_edges, &n_remove_edges,
-               DLTHE_FLAG_UPDATE_FREQ))
-       abort ();
+      ok = duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
+                                         loops, 1,
+                                         wont_exit, desc->out_edge,
+                                         remove_edges, &n_remove_edges,
+                                         DLTHE_FLAG_UPDATE_FREQ);
+      gcc_assert (ok);
 
       /* Create item for switch.  */
       j = n_peel - i - (extra_zero_check ? 0 : 1);
@@ -1041,7 +1050,8 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
 
       preheader = loop_split_edge_with (loop_preheader_edge (loop), NULL_RTX);
       branch_code = compare_and_jump_seq (copy_rtx (niter), GEN_INT (j), EQ,
-                                         block_label (preheader), p, NULL_RTX);
+                                         block_label (preheader), p,
+                                         NULL_RTX);
 
       swtch = loop_split_edge_with (single_pred_edge (swtch), branch_code);
       set_immediate_dominator (CDI_DOMINATORS, preheader, swtch);
@@ -1058,7 +1068,8 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
       swtch = ezc_swtch;
       preheader = loop_split_edge_with (loop_preheader_edge (loop), NULL_RTX);
       branch_code = compare_and_jump_seq (copy_rtx (niter), const0_rtx, EQ,
-                                         block_label (preheader), p, NULL_RTX);
+                                         block_label (preheader), p,
+                                         NULL_RTX);
 
       swtch = loop_split_edge_with (single_succ_edge (swtch), branch_code);
       set_immediate_dominator (CDI_DOMINATORS, preheader, swtch);
@@ -1077,11 +1088,12 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
   RESET_BIT (wont_exit, may_exit_copy);
   opt_info_start_duplication (opt_info);
   
-  if (!duplicate_loop_to_header_edge (loop, loop_latch_edge (loop),
-               loops, max_unroll,
-               wont_exit, desc->out_edge, remove_edges, &n_remove_edges,
-               DLTHE_FLAG_UPDATE_FREQ))
-    abort ();
+  ok = duplicate_loop_to_header_edge (loop, loop_latch_edge (loop),
+                                     loops, max_unroll,
+                                     wont_exit, desc->out_edge,
+                                     remove_edges, &n_remove_edges,
+                                     DLTHE_FLAG_UPDATE_FREQ);
+  gcc_assert (ok);
   
   if (opt_info)
     {
@@ -1094,7 +1106,8 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
   if (exit_at_end)
     {
       basic_block exit_block = desc->in_edge->src->rbi->copy;
-      /* Find a new in and out edge; they are in the last copy we have made.  */
+      /* Find a new in and out edge; they are in the last copy we have
+        made.  */
       
       if (EDGE_SUCC (exit_block, 0)->dest == desc->out_edge->dest)
        {
@@ -1119,7 +1132,8 @@ unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
      the correct new number of iterations is this:  */
   gcc_assert (!desc->const_iter);
   desc->niter_expr =
-    simplify_gen_binary (UDIV, desc->mode, old_niter, GEN_INT (max_unroll + 1));
+    simplify_gen_binary (UDIV, desc->mode, old_niter,
+                        GEN_INT (max_unroll + 1));
   desc->niter_max /= max_unroll + 1;
   if (exit_at_end)
     {
@@ -1242,6 +1256,7 @@ peel_loop_simple (struct loops *loops, struct loop *loop)
   unsigned npeel = loop->lpt_decision.times;
   struct niter_desc *desc = get_simple_loop_desc (loop);
   struct opt_info *opt_info = NULL;
+  bool ok;
   
   if (flag_split_ivs_in_unroller && npeel > 1)
     opt_info = analyze_insns_in_loop (loop);
@@ -1251,10 +1266,11 @@ peel_loop_simple (struct loops *loops, struct loop *loop)
   
   opt_info_start_duplication (opt_info);
   
-  if (!duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
-               loops, npeel, wont_exit, NULL, NULL, NULL,
-               DLTHE_FLAG_UPDATE_FREQ))
-    abort ();
+  ok = duplicate_loop_to_header_edge (loop, loop_preheader_edge (loop),
+                                     loops, npeel, wont_exit,
+                                     NULL, NULL,
+                                     NULL, DLTHE_FLAG_UPDATE_FREQ);
+  gcc_assert (ok);
 
   free (wont_exit);
   
@@ -1387,6 +1403,7 @@ unroll_loop_stupid (struct loops *loops, struct loop *loop)
   unsigned nunroll = loop->lpt_decision.times;
   struct niter_desc *desc = get_simple_loop_desc (loop);
   struct opt_info *opt_info = NULL;
+  bool ok;
   
   if (flag_split_ivs_in_unroller
       || flag_variable_expansion_in_unroller)
@@ -1397,10 +1414,11 @@ unroll_loop_stupid (struct loops *loops, struct loop *loop)
   sbitmap_zero (wont_exit);
   opt_info_start_duplication (opt_info);
   
-  if (!duplicate_loop_to_header_edge (loop, loop_latch_edge (loop),
-               loops, nunroll, wont_exit, NULL, NULL, NULL,
-               DLTHE_FLAG_UPDATE_FREQ))
-    abort ();
+  ok = duplicate_loop_to_header_edge (loop, loop_latch_edge (loop),
+                                     loops, nunroll, wont_exit,
+                                     NULL, NULL, NULL,
+                                     DLTHE_FLAG_UPDATE_FREQ);
+  gcc_assert (ok);
   
   if (opt_info)
     {
@@ -1599,6 +1617,7 @@ analyze_iv_to_split_insn (rtx insn)
   rtx set, dest;
   struct rtx_iv iv;
   struct iv_to_split *ivts;
+  bool ok;
 
   /* For now we just split the basic induction variables.  Later this may be
      extended for example by selecting also addresses of memory references.  */
@@ -1613,8 +1632,8 @@ analyze_iv_to_split_insn (rtx insn)
   if (!biv_p (insn, dest))
     return NULL;
 
-  if (!iv_analyze (insn, dest, &iv))
-    abort ();
+  ok = iv_analyze (insn, dest, &iv);
+  gcc_assert (ok);
 
   if (iv.step == const0_rtx
       || iv.mode != iv.extend_mode)
index 005560a361713447615985ab00d98d92e7659ccb..a61c8dfbb5dcd5d0d998dd9ad9eca55ccc259331 100644 (file)
@@ -424,7 +424,7 @@ struct loop_info
 #ifndef HAVE_prefetch
 #define HAVE_prefetch 0
 #define CODE_FOR_prefetch 0
-#define gen_prefetch(a,b,c) (abort(), NULL_RTX)
+#define gen_prefetch(a,b,c) (gcc_unreachable (), NULL_RTX)
 #endif
 
 /* Give up the prefetch optimizations once we exceed a given threshold.
@@ -3280,6 +3280,7 @@ find_and_verify_loops (rtx f, struct loops *loops)
                    if (invert_jump (p, new_label, 1))
                      {
                        rtx q, r;
+                       bool only_notes;
 
                        /* If no suitable BARRIER was found, create a suitable
                           one before TARGET.  Since TARGET is a fall through
@@ -3304,8 +3305,10 @@ find_and_verify_loops (rtx f, struct loops *loops)
 
                        /* Include the BARRIER after INSN and copy the
                           block after LOC.  */
-                       if (squeeze_notes (&new_label, &last_insn_to_move))
-                         abort ();
+                       only_notes = squeeze_notes (&new_label,
+                                                   &last_insn_to_move);
+                       gcc_assert (!only_notes);
+                       
                        reorder_insns (new_label, last_insn_to_move, loc);
 
                        /* All those insns are now in TARGET_LOOP.  */
@@ -7649,9 +7652,9 @@ basic_induction_var (const struct loop *loop, rtx x, enum machine_mode mode,
     case CONST_INT:
     case SYMBOL_REF:
     case CONST:
-      /* convert_modes aborts if we try to convert to or from CCmode, so just
+      /* convert_modes dies if we try to convert to or from CCmode, so just
          exclude that case.  It is very unlikely that a condition code value
-        would be a useful iterator anyways.  convert_modes aborts if we try to
+        would be a useful iterator anyways.  convert_modes dies if we try to
         convert a float mode to non-float or vice versa too.  */
       if (loop->level == 1
          && GET_MODE_CLASS (mode) == GET_MODE_CLASS (GET_MODE (dest_reg))
index 4ea4ed803e92b77cb590bfe32769a8adcc7a4f33..11cfdcb01ad1ff0a68b4d02c3d90afd09ccdaf74 100644 (file)
@@ -638,8 +638,7 @@ normalize_sched_times (partial_schedule_ptr ps)
       ddg_node_ptr u = &g->nodes[i];
       int normalized_time = SCHED_TIME (u) - amount;
 
-      if (normalized_time < 0)
-       abort ();
+      gcc_assert (normalized_time >= 0);
 
       SCHED_TIME (u) = normalized_time;
       SCHED_ROW (u) = normalized_time % ii;
@@ -1733,8 +1732,7 @@ check_nodes_order (int *node_order, int num_nodes)
     {
       int u = node_order[i];
 
-      if (u >= num_nodes || u < 0 || TEST_BIT (tmp, u))
-       abort ();
+      gcc_assert (u < num_nodes && u >= 0 && !TEST_BIT (tmp, u));
 
       SET_BIT (tmp, u);
     }
index 9652c23a1c7f7a1976ca99c4f841435c5326c5cc..398fdfc0ad43cea6922027a3a80afe345d7961ed 100644 (file)
@@ -1789,7 +1789,7 @@ tree_find_values_to_profile (histogram_values *values)
          break;
 
        default:
-         abort ();
+         gcc_unreachable ();
        }
     }
 }
index 6d3f443c8f3fec52cd4eaebd6223444325d4aad6..832b55b1d1fef2dbcd95ea61bf2a84c21951b2f5 100644 (file)
@@ -470,7 +470,7 @@ named_section (tree decl, const char *name, int reloc)
   flags = targetm.section_type_flags (decl, name, reloc);
 
   /* Sanity check user variables for flag changes.  Non-user
-     section flag changes will abort in named_section_flags.
+     section flag changes will die in named_section_flags.
      However, don't complain if SECTION_OVERRIDE is set.
      We trust that the setter knows that it is safe to ignore
      the default flags for this decl.  */
@@ -2170,8 +2170,8 @@ default_assemble_integer (rtx x ATTRIBUTE_UNUSED,
 
 /* Assemble the integer constant X into an object of SIZE bytes.  ALIGN is
    the alignment of the integer in bits.  Return 1 if we were able to output
-   the constant, otherwise 0.  If FORCE is nonzero, abort if we can't output
-   the constant.  */
+   the constant, otherwise 0.  We must be able to output the constant,
+   if FORCE is nonzero.  */
 
 bool
 assemble_integer (rtx x, unsigned int size, unsigned int align, int force)
@@ -2259,7 +2259,7 @@ assemble_real (REAL_VALUE_TYPE d, enum machine_mode mode, unsigned int align)
 /* Given an expression EXP with a constant value,
    reduce it to the sum of an assembler symbol and an integer.
    Store them both in the structure *VALUE.
-   Abort if EXP does not reduce.  */
+   EXP must be reduceable.  */
 
 struct addr_const GTY(())
 {