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]
Other format: [Raw text]

java/6823: "internal error: Segmentation fault" on -O2 compilation to machine code



>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 <oskar@osk.mine.nu>
>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 <URL:http://www.gnu.org/software/gcc/bugs.html> 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:


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