summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-26 05:18:44 +0000
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-26 05:18:44 +0000
commitdda908156c671a94c14d8e92bfec8cc101b1ab2f (patch)
treed44a531d6d8a1d3b4f321e6fc43e9e6dbb2f1277 /gcc/flow.c
parent2ee035782f88d1c2cf372cd941a0a1704d2ebd4b (diff)
downloadgcc-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.c42
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);
}
}