This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug gcc/12279] Re: GCC 3.4-20030913 VAX lossage.

Matt Thomas <> 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
> regressions.
> 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  <>

	* 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.
	(try_redirect_by_replacing_jump): Likewise.
	(redirect_edge_and_branch): 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  <>

	* cfgcleanup.c (label_is_jump_target_p): Correct use of table
	returned by tablejump_p.

Index: cfgcleanup.c
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),
       int i, veclen = GET_NUM_ELEM (vec);
       for (i = 0; i < veclen; ++i)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]