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]

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


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;


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