This is the mail archive of the gcc-bugs@gcc.gnu.org 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]

Re: Internal compiler error: program cc1 got fatal signal 4 building egcs-1.1a for vax-dec-ultrix4.3 - Possible fix: BUG RESURFARO


> The following bug squashed previously has arisen again with gcc-2.96:
> 
> ...
> ./xgcc -B/usr/local/vax-dec-ultrix4.3/bin/ -B./ -isystem /usr/local/vax-dec-ultr
> ix4.3/include -S tmp-dum.c
> xgcc: Internal compiler error: program cc1 got fatal signal 4

I believe the following patch to tree.c fixes the problem.  It prevents the
undefined shift operation which results from attempting to make the
int and unsigned_intTI_type_node's on machines with HOST_BITS_PER_WIDE_INT
less than 64 bits.

I also enclose a hack to Makefile.in to eliminate the -Wno-long-long
option since this is not supported on many versions of gcc.  A beter solution
would be a configure test to determine if this is supported.

Hopefully, these can get installed.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

--- tree.c.orig	Thu May 11 12:46:36 2000
+++ tree.c	Mon May 15 17:01:34 2000
@@ -5711,13 +5711,17 @@
   intHI_type_node = make_signed_type (GET_MODE_BITSIZE (HImode));
   intSI_type_node = make_signed_type (GET_MODE_BITSIZE (SImode));
   intDI_type_node = make_signed_type (GET_MODE_BITSIZE (DImode));
+#if HOST_BITS_PER_WIDE_INT >= 64
   intTI_type_node = make_signed_type (GET_MODE_BITSIZE (TImode));
+#endif
 
   unsigned_intQI_type_node = make_unsigned_type (GET_MODE_BITSIZE (QImode));
   unsigned_intHI_type_node = make_unsigned_type (GET_MODE_BITSIZE (HImode));
   unsigned_intSI_type_node = make_unsigned_type (GET_MODE_BITSIZE (SImode));
   unsigned_intDI_type_node = make_unsigned_type (GET_MODE_BITSIZE (DImode));
+#if HOST_BITS_PER_WIDE_INT >= 64
   unsigned_intTI_type_node = make_unsigned_type (GET_MODE_BITSIZE (TImode));
+#endif
 }
 
 /* Call this function after calling build_common_tree_nodes and set_sizetype.
--- Makefile.in.orig	Fri May 12 19:35:36 2000
+++ Makefile.in	Tue May 16 10:40:26 2000
@@ -76,7 +76,7 @@
 TCFLAGS =
 CFLAGS = -g @stage1_warn_cflags@
 BOOT_CFLAGS = -O2 $(CFLAGS)
-WARN_CFLAGS = -W -Wall -Wtraditional -pedantic -Wno-long-long -Wwrite-strings
+WARN_CFLAGS = -W -Wall -Wtraditional -pedantic -Wwrite-strings
 LOOSE_CFLAGS = `echo $(CFLAGS)|sed -e 's/-pedantic//g' -e 's/-Wtraditional//g'`
 # These exists to be overridden by the x-* and t-* files, respectively.
 X_CFLAGS =

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