diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-26 05:18:44 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-26 05:18:44 +0000 |
commit | dda908156c671a94c14d8e92bfec8cc101b1ab2f (patch) | |
tree | d44a531d6d8a1d3b4f321e6fc43e9e6dbb2f1277 /gcc/flow.c | |
parent | 2ee035782f88d1c2cf372cd941a0a1704d2ebd4b (diff) | |
download | gcc-dda908156c671a94c14d8e92bfec8cc101b1ab2f.tar.gz |
1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
* system.h: Don't redefine abort or trim_filename.
* rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
whether or not __FUNCTION__ is available.
* tree.h: Duplicate rtl.h's definition of abort, for files
that don't include rtl.h. Delete all code to perform type
checking with a compiler other than GCC.
* varray.h: Delete all code to perform type checking with a
compiler other than GCC. Make VARRAY_CHECK() always evaluate
its arguments exactly once, using a statement expression.
Adjust the VARRAY_<type> accessor macros to match.
* toplev.h (fatal_insn, fatal_insn_not_found): Kill.
(_fatal_insn, _fatal_insn_not_found): New fns, take info on
caller's location. Define fatal_insn and fatal_insn_not_found
as macros that use _fatal_insn and _fatal_insn_not_found.
(fancy_abort, trim_filename): Kill prototypes.
* rtl.c (trim_filename): Move here from toplev.c.
(fancy_abort): New function.
(DIR_SEPARATOR): Provide default definition.
* tree.c (tree_check_failed, tree_class_check_failed): Go
through fancy_abort.
(tree_check, tree_class_check, cst_or_constructor_check,
expr_check): Delete.
* varray.c (varray_check_failed): New function.
* toplev.c (fatal_insn, fatal_insn_not_found): Replace with
_fatal_insn and _fatal_insn_not_found. Go through
fancy_abort.
(trim_filename, fancy_abort): Delete.
* builtins.c (expand_builtin_args_info): Report ICE with abort.
* except.c (start_catch_handler): Report ICE with error/abort
combo.
* final.c (output_operand_lossage): Likewise.
* flow.c (verify_flow_info): Likewise.
* gcc.c: Prototype fatal.
* gengenrtl.c: Undef abort after including rtl.h not system.h.
* genattr.c, genattrtab.c, genemit.c, genextract.c,
genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
Don't define fancy_abort.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28889 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/gcc/flow.c b/gcc/flow.c index a6420a74507..0f151e7c262 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -6171,8 +6171,9 @@ verify_flow_info () break; if (!x) { - fatal ("verify_flow_info: Head insn %d for block %d not found in the insn stream.\n", + error ("Head insn %d for block %d not found in the insn stream.", INSN_UID (bb->head), bb->index); + abort (); } /* Check the end pointer and make sure that it is pointing into @@ -6181,8 +6182,9 @@ verify_flow_info () { if (bb_info[INSN_UID (x)] != NULL) { - fatal ("verify_flow_info: Insn %d is in multiple basic blocks (%d and %d)", + error ("Insn %d is in multiple basic blocks (%d and %d)", INSN_UID (x), bb->index, bb_info[INSN_UID (x)]->index); + abort (); } bb_info[INSN_UID (x)] = bb; @@ -6191,8 +6193,9 @@ verify_flow_info () } if (!x) { - fatal ("verify_flow_info: End insn %d for block %d not found in the insn stream.\n", + error ("End insn %d for block %d not found in the insn stream.", INSN_UID (bb->end), bb->index); + abort (); } } @@ -6224,8 +6227,8 @@ verify_flow_info () e2 = e2->pred_next; if (!e2) { - fatal ("verify_flow_info: Basic block %i edge lists are corrupted\n", - bb->index); + error ("Basic block %i edge lists are corrupted", bb->index); + abort (); } } e = e->succ_next; @@ -6236,13 +6239,12 @@ verify_flow_info () { if (e->dest != bb) { - fprintf (stderr, "verify_flow_info: Basic block %d pred edge is corrupted\n", - bb->index); - fprintf (stderr, "Predecessor: "); + error ("Basic block %d pred edge is corrupted", bb->index); + fputs ("Predecessor: ", stderr); dump_edge_info (stderr, e, 0); - fprintf (stderr, "\nSuccessor: "); + fputs ("\nSuccessor: ", stderr); dump_edge_info (stderr, e, 1); - fflush (stderr); + fputc ('\n', stderr); abort (); } if (e->src != ENTRY_BLOCK_PTR) @@ -6252,8 +6254,8 @@ verify_flow_info () e2 = e2->succ_next; if (!e2) { - fatal ("verify_flow_info: Basic block %i edge lists are corrupted\n", - bb->index); + error ("Basic block %i edge lists are corrupted", bb->index); + abort; } } e = e->pred_next; @@ -6267,7 +6269,9 @@ verify_flow_info () { if (bb->end == x) { - fatal ("verify_flow_info: Basic block contains only CODE_LABEL and no NOTE_INSN_BASIC_BLOCK note\n"); + error ("NOTE_INSN_BASIC_BLOCK is missing for block %d", + bb->index); + abort (); } x = NEXT_INSN (x); } @@ -6275,8 +6279,9 @@ verify_flow_info () || NOTE_LINE_NUMBER (x) != NOTE_INSN_BASIC_BLOCK || NOTE_BASIC_BLOCK (x) != bb) { - fatal ("verify_flow_info: NOTE_INSN_BASIC_BLOCK is missing for block %d\n", + error ("NOTE_INSN_BASIC_BLOCK is missing for block %d\n", bb->index); + abort (); } if (bb->end == x) @@ -6291,8 +6296,9 @@ verify_flow_info () if (GET_CODE (x) == NOTE && NOTE_LINE_NUMBER (x) == NOTE_INSN_BASIC_BLOCK) { - fatal ("verify_flow_info: NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d\n", + error ("NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d", INSN_UID (x), bb->index); + abort (); } if (x == bb->end) @@ -6302,8 +6308,8 @@ verify_flow_info () || GET_CODE (x) == CODE_LABEL || GET_CODE (x) == BARRIER) { - fatal_insn ("verify_flow_info: Incorrect insn in the middle of basic block %d\n", - x, bb->index); + error ("In basic block %d:", bb->index); + fatal_insn ("Flow control insn inside a basic block", x); } x = NEXT_INSN (x); @@ -6336,7 +6342,7 @@ verify_flow_info () break; default: - fatal_insn ("verify_flow_info: Insn outside basic block\n", x); + fatal_insn ("Insn outside basic block", x); } } |