This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Internal compiler error: program cc1 got fatal signal 4 building egcs-1.1a for vax-dec-ultrix4.3 - Possible fix
- To: egcs-bugs at cygnus dot com
- Subject: Internal compiler error: program cc1 got fatal signal 4 building egcs-1.1a for vax-dec-ultrix4.3 - Possible fix
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Wed, 9 Sep 1998 14:41:01 -0400 (EDT)
Forwarded message:
> From dave Wed Sep 9 13:28:19 EDT 1998
> Subject: Internal compiler error: program cc1 got fatal signal 4 building egcs-1.1a for vax-dec-ultrix4.3
> To: egcs-bugs@cygnus.com
> Date: Wed, 9 Sep 1998 13:28:19 -0400 (EDT)
> From: "John David Anglin" <dave@hiauly1>
> X-Mailer: ELM [version 2.4 PL25]
> MIME-Version: 1.0
> Content-Type: text/plain; charset=US-ASCII
> Content-Transfer-Encoding: 7bit
> Content-Length: 4956
>
> The build fails with the following error:
>
> ...
> cat ../../gcc/sys-types.h ../../gcc/sys-protos.h > SYSCALLS.c
> ./xgcc -B./ -DIN_GCC -g -O3 -save-temps -I./include -I. -I../../gcc -I../../gcc/config \
> -aux-info SYSCALLS.c.X -S -o tmp-SYSCALLS.s SYSCALLS.c
> xgcc: Internal compiler error: program cc1 got fatal signal 4
> make: *** [SYSCALLS.c.X] Error 1
>
Here is a patch which may resolve the above error:
*** stor-layout.c.orig Thu May 28 02:46:38 1998
--- stor-layout.c Wed Sep 9 14:17:48 1998
***************
*** 1243,1257 ****
tree type;
{
register int precision = TYPE_PRECISION (type);
TYPE_MIN_VALUE (type) = build_int_2 (0, 0);
! TYPE_MAX_VALUE (type)
! = build_int_2 (precision - HOST_BITS_PER_WIDE_INT >= 0
? -1 : ((HOST_WIDE_INT) 1 << precision) - 1,
! precision - HOST_BITS_PER_WIDE_INT > 0
! ? ((unsigned HOST_WIDE_INT) ~0
! >> (HOST_BITS_PER_WIDE_INT
! - (precision - HOST_BITS_PER_WIDE_INT)))
: 0);
TREE_TYPE (TYPE_MIN_VALUE (type)) = type;
TREE_TYPE (TYPE_MAX_VALUE (type)) = type;
--- 1243,1256 ----
tree type;
{
register int precision = TYPE_PRECISION (type);
+ register int p1 = precision - HOST_BITS_PER_WIDE_INT;
+ register int p2 = HOST_BITS_PER_WIDE_INT - p1;
TYPE_MIN_VALUE (type) = build_int_2 (0, 0);
! TYPE_MAX_VALUE (type) = build_int_2 ((p1 >= 0 && p2 > 0)
? -1 : ((HOST_WIDE_INT) 1 << precision) - 1,
! (p1 > 0 && p2 >= 0)
! ? (unsigned HOST_WIDE_INT) ~0 >> p2
: 0);
TREE_TYPE (TYPE_MIN_VALUE (type)) = type;
TREE_TYPE (TYPE_MAX_VALUE (type)) = type;