From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9807 invoked by alias); 26 May 2002 19:26:01 -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 9777 invoked by uid 71); 26 May 2002 19:26:00 -0000 Resent-Date: 26 May 2002 19:26:00 -0000 Resent-Message-ID: <20020526192600.9775.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, java-prs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Oskar Liljeblad Received:(qmail 9015 invoked by uid 61); 26 May 2002 19:21:37 -0000 Message-Id:<20020526192137.9014.qmail@sources.redhat.com> Date: Sun, 26 May 2002 12:46:00 -0000 From: Oskar Liljeblad Reply-To: Oskar Liljeblad To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: java/6823: "internal error: Segmentation fault" on -O2 compilation to machine code X-SW-Source: 2002-05/txt/msg00841.txt.bz2 List-Id: >Number: 6823 >Category: java >Synopsis: "internal error: Segmentation fault" on -O2 compilation to machine code >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun May 26 12:26:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Oskar Liljeblad >Release: 3.1 >Organization: >Environment: Linux/x86 >Description: Compile this with "gcj -c -O2 Demo.java": class Demo { final synchronized void foo() { return; } void bar() { foo(); synchronized (this) { return; } } } The result is: Demo.java: In class `Demo': Demo.java: In method `Demo.bar()': Demo.java:9: internal error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See for instructions. It will work fine if you do one of: * Remove the "return;" in foo() * Remove "syncronized" in foo's prototype. * Remove "final" in foo's prototype. * Remove the call "foo()" in bar. * Remove the "return;" in the synchronized block in bar. * Remove the synchronized block in bar (keeping the "return" statement). * Put the "foo" method after "bar" instead of before. * Compile into java bytecode instead of machine code. * Don't compile the program with -O2. I'm sorry - it is easy to find bugs but harder to fix them :( Unfortunately I know too little about GCC to help out. Oskar Liljeblad (oskar@osk.mine.nu) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: