This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Internal compiler error: program cc1 got fatal signal 4 building egcs-1.1a for vax-dec-ultrix4.3 - Possible fix: BUG RESURFARO
- To: dave at hiauly1 dot hia dot nrc dot ca (John David Anglin)
- Subject: Re: Internal compiler error: program cc1 got fatal signal 4 building egcs-1.1a for vax-dec-ultrix4.3 - Possible fix: BUG RESURFARO
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Tue, 16 May 2000 19:13:40 -0400 (EDT)
- Cc: law at cygnus dot com, egcs-bugs at egcs dot cygnus dot com
> 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 =