This is the mail archive of the
mailing list for the GCC project.
[Bug gcc/12279] Re: GCC 3.4-20030913 VAX lossage.
- From: Ian Lance Taylor <ian at wasabisystems dot com>
- To: Matt Thomas <matt at 3am-software dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: 15 Sep 2003 21:21:21 -0700
- Subject: [Bug gcc/12279] Re: GCC 3.4-20030913 VAX lossage.
- References: <54D2E3CC-E7F9-11D7-825E-000A957020BC@3am-software.com>
Matt Thomas <firstname.lastname@example.org> writes:
> I have a set of diffs that add PIC code generation to the GCC 3.4
> VAX target. However, due to a bug (which I submitted this weekend)
> in casesi processing, I can't fully test these changes. However,
> as far as I can tell, these changes don't introduce any extra
> I could submit them to gcc-patches (because I really want these
> changes in GCC 3.4) but that doesn't seem right. But I can't test
> them and the bug is beyond my keen to fix. (The bug happens even
> at -O0 so I can't work around it at all).
> Any suggestions on how I should proceed?
This patch fixes the VAX ICE. It looks to me like the cfgcleanup.c
portion of this patch
2003-03-30 Richard Henderson <email@example.com>
* cfgbuild.c (make_edges): Use tablejump_p.
* cfgcleanup.c (label_is_jump_target_p): Likewise.
* cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
* cfgrtl.c (flow_delete_block_noexpunge): Likewise.
* cse.c (fold_rtx): Likewise.
* jump.c (delete_related_insns): Likewise.
* rtlanal.c (get_jump_table_offset): Likewise.
* ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
was simply incorrect. I don't know why nobody else has encountered
this problem since then.
Richard, any thoughts?
2003-09-15 Ian Lance Taylor <firstname.lastname@example.org>
* cfgcleanup.c (label_is_jump_target_p): Correct use of table
returned by tablejump_p.
RCS file: /cvs/gcc/gcc/gcc/cfgcleanup.c,v
retrieving revision 1.94
diff -u -p -r1.94 cfgcleanup.c
--- cfgcleanup.c 7 Sep 2003 16:23:40 -0000 1.94
+++ cfgcleanup.c 16 Sep 2003 04:12:10 -0000
@@ -661,7 +661,8 @@ label_is_jump_target_p (rtx label, rtx j
if (tablejump_p (jump_insn, NULL, &tmp))
- rtvec vec = XVEC (tmp, GET_CODE (tmp) == ADDR_DIFF_VEC);
+ rtvec vec = XVEC (PATTERN (tmp),
+ GET_CODE (PATTERN (tmp)) == ADDR_DIFF_VEC);
int i, veclen = GET_NUM_ELEM (vec);
for (i = 0; i < veclen; ++i)