From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2277 invoked by alias); 19 Apr 2002 21:16:09 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 2221 invoked by uid 71); 19 Apr 2002 21:16:06 -0000 Resent-Date: 19 Apr 2002 21:16:06 -0000 Resent-Message-ID: <20020419211606.2220.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, jakob@unthought.net Received:(qmail 920 invoked by uid 61); 19 Apr 2002 21:14:27 -0000 Message-Id:<20020419211427.918.qmail@sources.redhat.com> Date: Fri, 19 Apr 2002 14:16:00 -0000 From: jakob@unthought.net Reply-To: jakob@unthought.net To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/6378: Segfault/bus-error on UltraSPARC/Solaris8 with virtual inheritance X-SW-Source: 2002-04/txt/msg01004.txt.bz2 List-Id: >Number: 6378 >Category: c++ >Synopsis: Segfault/bus-error on UltraSPARC/Solaris8 with virtual inheritance >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Fri Apr 19 14:16:05 PDT 2002 >Closed-Date: >Last-Modified: >Originator: jakob@unthought.net >Release: gcc version 3.0.4 >Organization: >Environment: SunOS sol 5.8 Generic_108528-14 sun4u sparc SUNW,Ultra-1 GCC configured with: ./configure --enable-languages=c,c++ --disable-threads --with-as=/usr/local/bin/as --with-gnu-as --with-ld=/usr/local/bin/ld --with-gnu-ld >Description: The generated program will either SIGSEGV or SIGBUS in the throw handling code (ev_throw and friends), in certain situations when one uses virtual inheritance. So far my testing shows the error on: *) The system described here (ultrasparc) *) FreeBSD 4.5 with gcc-2.95.3 (ia32) *) FreeBSD 4.5 with gcc-3.0.4 (ia32) And I cannot provoke the error on: *) RedHat Linux 7.2 with gcc-2.96-98 (ia32) *) Debian GNU/Linux 2.2 with gcc-3.0.3 (ia32) *) SuSE Linux 7.3 with gcc-2.95.3 (ia32) *) HP-UX 11 with gcc-3.0.1 (parisc) >How-To-Repeat: Compile the attached program (test.cc) and run it. It ought to print out: "Caught e=0", but when the problem exists the program will instead segfault or die with a bus error. The comments (XXX_A, XXX_B, and the XXX_C pair) identify places in the code where you can work around the bug. There may be more ways to do that, but those were the ones my initial testing found. >Fix: >Release-Note: >Audit-Trail: >Unformatted: