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>
