Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Mar 1999 19:59:56 -0800 (PST)
From:      eischen@vigrid.com
To:        freebsd-gnats-submit@freebsd.org
Subject:   gnu/10740: Fatal GCC error
Message-ID:  <19990323035956.6CC1E14C14@hub.freebsd.org>

index | next in thread | raw e-mail


>Number:         10740
>Category:       gnu
>Synopsis:       Fatal GCC error
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Mar 22 20:00:01 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Eischen
>Release:        4.0-current
>Organization:
>Environment:
FreeBSD antares 4.0-CURRENT FreeBSD 4.0-CURRENT #0: Mon Feb 22 20:03:32 EST 1999     deischen@antares:/opt/src/src/sys/compile/antares  i386

>Description:
I found something that causes a fatal GCC bug with both the stock
GCC, and gcc-2.8.1 built from ports.  Here's how it aborts:

  cc -c -O -pipe -DFREEBSD_ELF     -I. -I. -I./config -DHAVE_CONFIG_H \
   -I./../include/opcode -I./../readline  -I../bfd -I./../bfd  -I./../include \
   ada-lang.c
  ada-lang.c: In function `ada_evaluate_subexp':
  ada-lang.c:5951: internal error--insn does not satisfy its constraints:
  (insn 2997 2996 4542 (parallel[ 
              (set (reg:DI 1 %edx)
                  (minus:DI (reg:DI 0 %eax)
                      (reg/v:DI 3 %ebx)))
              (clobber (scratch:SI))
          ] ) 135 {subdi3} (insn_list 2982 (insn_list 2994 (nil)))
      (expr_list:REG_DEAD (mem:DI (plus:SI (reg:SI 6 %ebp)
                  (const_int -64)))
          (expr_list:REG_DEAD (reg/v:DI 3 %ebx)
              (expr_list:REG_UNUSED (scratch:SI)
                  (nil)))))
  cc: Internal compiler error: program cc1 got fatal signal 6
  *** Error code 1

>How-To-Repeat:
This can be reproduced by building the Ada-aware GDB port found at:

  ftp://ftp.pcnet.com/users/eischen/FreeBSD/adagdb-4.17-port.tar.gz

and building with 'make EXPOSE_FATAL_GCC_ERROR=yes'.  If you
don't define EXPOSE_FATAL_GCC_ERROR, a work-around patch is
applied and the port successfully builds.

>Fix:
I don't know how to fix GCC, but a work-around to the bug can
be made by changing 2 ocurrences of the following line:

      (*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);

in ada-lang.c to

      (*pos) = (*pos) + 3 + BYTES_TO_EXP_ELEM (tem + 1);


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990323035956.6CC1E14C14>