This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: Allow jump table data in fallthru if CASE_DROPS_THROUGH
- To: gcc-patches at gcc dot gnu dot org
- Subject: PATCH: Allow jump table data in fallthru if CASE_DROPS_THROUGH
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Mon, 1 Oct 2001 12:09:03 -0400 (EDT)
This is a repost because the file to which it applies has changed. On
machines such as the vax, a jump table can be in the fallthru. This patch
changes verify_flow_info to allow jump tables in the fallthru when
CASE_DROPS_THROUGH is defined when it checks the configuration.
The patch has been bootstrap checked on hppa1.1-hp-hpux10.20. On the
vax, it has been confirmed that it resolves the problem in question.
However, there are still more bugs to stomp in the mainline.
OK?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2001-10-01 John David Anglin <dave@hiauly1.hia.nrc.ca>
* cfgrtl.c (verify_flow_info): Allow jump table data in fallthru if
CASE_DROPS_THROUGH.
--- cfgrtl.c.orig Fri Sep 28 22:44:22 2001
+++ cfgrtl.c Fri Sep 28 23:16:32 2001
@@ -1609,7 +1609,12 @@
else
for (insn = NEXT_INSN (e->src->end); insn != e->dest->head;
insn = NEXT_INSN (insn))
- if (GET_CODE (insn) == BARRIER || INSN_P (insn))
+ if (GET_CODE (insn) == BARRIER
+#ifndef CASE_DROPS_THROUGH
+ || INSN_P (insn))
+#else
+ || (INSN_P (insn) && ! JUMP_TABLE_DATA_P (insn)))
+#endif
{
error ("verify_flow_info: Incorrect fallthru %i->%i",
e->src->index, e->dest->index);