Compiling egcs-ss-980308
Franz Sirl
Franz.Sirl-kernel@lauterbach.com
Mon Mar 9 05:25:00 GMT 1998
At 09:02 09.03.98 -0300, Alexandre Oliva wrote:
>Michael Schoene writes:
>
>> (jump_insn 3074 3073 3075 (addr_diff_vec:SI (label_ref:SI 3073)
>> [
>> (label_ref:SI 2994)
>[snip]
>> xgcc: Internal compiler error: program cc1 got fatal signal 6
>
>I've got similar errors on sparc-sun-solaris2.[56],
>mips-sgi-irix{5.2,6.3}, but not on RedHat Linux 5.0 /{i386,alpha} nor
>RedHat Linux 4.0
Jeff fixed it in CVS with the following patch:
Index: gcc/ChangeLog
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/ChangeLog,v
retrieving revision 1.881
retrieving revision 1.882
diff -u -r1.881 -r1.882
--- ChangeLog 1998/03/08 02:17:42 1.881
+++ ChangeLog 1998/03/08 12:04:15 1.882
@@ -1,3 +1,8 @@
+Sun Mar 8 13:01:56 1998 Jeffrey A Law (law@cygnus.com)
+
+ * final.c (shorten_branches): Fix minor logic error in
+ ADDR_DIFF_VEC shortening support.
+
Sun Mar 8 02:17:42 PST 1998 Jeff Law (law@cygnus.com)
* version.c: Bump for snapshot.
Index: gcc/final.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/final.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- final.c 1998/03/06 14:44:24 1.23
+++ final.c 1998/03/08 12:04:17 1.24
@@ -1296,10 +1296,10 @@
insn_last_address = insn_addresses[uid];
insn_addresses[uid] = insn_current_address;
+#ifdef CASE_VECTOR_SHORTEN_MODE
if (optimize && GET_CODE (insn) == JUMP_INSN
&& GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC)
{
-#ifdef CASE_VECTOR_SHORTEN_MODE
rtx body = PATTERN (insn);
int old_length = insn_lengths[uid];
rtx rel_lab = XEXP (XEXP (body, 0), 0);
@@ -1397,9 +1397,10 @@
something_changed = 1;
#endif
continue;
-#endif /* CASE_VECTOR_SHORTEN_MODE */
}
- else if (! (varying_length[uid]))
+#endif /* CASE_VECTOR_SHORTEN_MODE */
+
+ if (! (varying_length[uid]))
{
insn_current_address += insn_lengths[uid];
continue;
More information about the Gcc-bugs
mailing list