public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* java/1396: Compiler problem with LinkedList iterator
@ 2000-12-20 12:25 bryce
  0 siblings, 0 replies; only message in thread
From: bryce @ 2000-12-20 12:25 UTC (permalink / raw)
  To: java-gnats

>Number:         1396
>Category:       java
>Synopsis:       Compiler problem with LinkedList iterator
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apbianco
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 20 12:19:35 PST 2000
>Closed-Date:    Wed Nov 22 22:05:03 PST 2000
>Last-Modified:  Wed Nov 22 22:16:00 PST 2000
>Originator:     Bryce McKinlay
>Release:        recent 2.97
>Organization:
>Environment:

>Description:
gcj apparantly miscompiles LinkedList.java.

The following test case will crash mysteriously:

import java.util.*;

public class LLTest
{
  public static void main(String[] args)
  {
    List l = new LinkedList();
    l.add("one");
    l.add("two");

    ListIterator i = l.listIterator();
    i.next();
    i.remove();
    System.out.println(i.next());
  }  
}

Program received signal SIGSEGV, Segmentation fault.
0x4014be6b in java.util.LinkedList.removeEntry (this=@8069289, e=@8069270)
    at ../../../libjava/java/util/LinkedList.java:133
warning: Source file is more recent than executable.

133                 e.previous.next = e.next;
Current language:  auto; currently java
(gdb) bt
#0  0x4014be6b in java.util.LinkedList.removeEntry (this=@8069289, e=@8069270)
    at ../../../libjava/java/util/LinkedList.java:133
#1  0x4014bae8 in java.util.LinkedList$LinkedListItr.remove (this=@8066ae0)
    at ../../../libjava/java/util/LinkedList.java:631
#2  0x804bb25 in LLTest.main (args=@4020ffc0) at LLTest.java:13
#3  0x400ee087 in gnu::gcj::runtime::FirstThread::run (this=@8067ea0)
    at ../../../libjava/gnu/gcj/runtime/natFirstThread.cc:146
#4  0x400f8df6 in java::lang::Thread::run_ (obj=@8067ea0)
    at ../../../libjava/java/lang/natThread.cc:263
#5  0x401aeb11 in really_start (x=@80bcff8)
    at ../../../libjava/posix-threads.cc:344
#6  0x402c8692 in GC_start_routine (arg=@8081fc0)
    at ../../../boehm-gc/linux_threads.c:631
#7  0x402e0b85 in pthread_start_thread (arg=@bf7ffe40) at manager.c:241

It appears that an incorrect "this" is passed to 
LinkedList.removeEntry() from LinkedListItr.remove(),
resulting in the wrong code to be executed inside that 
method.

This seems similar to the "Hashtable" bug, PR 332.
>How-To-Repeat:
Try to run the above test case on the latest libgcj
>Fix:

>Release-Note:

>Audit-Trail:

Formerly PR gcj/367

State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Wed Nov 22 19:12:11 2000
State-Changed-Why:
    I attached a patch.

From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz,
  java-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: gcj/367
Date: 23 Nov 2000 03:12:11 -0000

 Synopsis: Compiler problem with LinkedList iterator
 
 State-Changed-From-To: open->feedback
 State-Changed-By: apbianco
 State-Changed-When: Wed Nov 22 19:12:11 2000
 State-Changed-Why:
     I attached a patch.
 
 http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=367&database=java

From: Bryce McKinlay <bryce@albatross.co.nz>
To: apbianco@cygnus.com
Cc: java-gnats@sourceware.cygnus.com
Subject: Re: gcj/367
Date: Thu, 23 Nov 2000 18:55:26 +1300

 apbianco@cygnus.com wrote:
 
 >  Synopsis: Compiler problem with LinkedList iterator
 
 Patch works nicely for me. Thanks!
 
 regards
 
   [ bryce ]
 
 
State-Changed-From-To: feedback->closed
State-Changed-By: apbianco
State-Changed-When: Wed Nov 22 22:05:03 2000
State-Changed-Why:
    I checked in this patch:
      http://gcc.gnu.org/ml/gcc-patches/2000-11/msg01335.html

From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz,
  java-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: gcj/367
Date: 23 Nov 2000 06:05:03 -0000

 Synopsis: Compiler problem with LinkedList iterator
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: apbianco
 State-Changed-When: Wed Nov 22 22:05:03 2000
 State-Changed-Why:
     I checked in this patch:
       http://gcc.gnu.org/ml/gcc-patches/2000-11/msg01335.html
 
 http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=367&database=java

From: Alexandre Petit-Bianco <apbianco@cygnus.com>
To: Bryce McKinlay <bryce@albatross.co.nz>
Cc: java-gnats@sourceware.cygnus.com
Subject: Re: gcj/367
Date: Wed, 22 Nov 2000 22:06:36 -0800 (PST)

 Bryce McKinlay writes:
 >  Patch works nicely for me. Thanks!
 
 Cool, thanks. I checked in this patch and closed the PR:
 
   http://gcc.gnu.org/ml/gcc-patches/2000-11/msg01335.html
 
 Note that the patch is a bit different compared to what I originally
 sent to you. Updating parse.y might trigger conflicts.
 
 ./A
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="p"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="p"

MjAwMC0xMS0yMiAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+
CgoJKiBwYXJzZS55IChidWlsZF9vdXRlcl9maWVsZF9hY2Nlc3MpOiBOZXcgbG9jYWwgYGRlY2xf
Y3R4JywgdXNlCglpdC4gQ2hlY2sgZm9yIGZpZWxkJ3MgY29udGV4dCBhbmQgY3VycmVudCBjbGFz
cyBpbW1lZGlhdGUgb3V0ZXIKCWNvbnRleHQgaW5oZXJpdGFuY2UuCgkob3V0ZXJfZmllbGRfYWNj
ZXNzX3ApOiBDb25zaWRlciBmaWVsZHMgaW5oZXJpdGVkIGZyb20gdGhlIGxhc3QKCWVuY2xvc2lu
ZyBjb250ZXh0LgoJKGJ1aWxkX2FjY2Vzc190b190aGlzbik6IFN0b3AgYXQgdGhlIGxhc3QgZW5j
bG9zaW5nIGNvbnRleHQgaWYKCW5lY2Vzc2FyeS4KCkluZGV4OiBwYXJzZS55Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvZ2NjL2VnY3MvZ2NjL2phdmEvcGFyc2UueSx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yMjkKZGlmZiAtdSAtcCAtcjEuMjI5IHBhcnNlLnkKLS0tIHBhcnNlLnkJMjAwMC8x
MS8yMiAwNToyNToxNQkxLjIyOQorKysgcGFyc2UueQkyMDAwLzExLzIzIDAzOjA3OjI3CkBAIC03
ODM3LDExICs3ODM3LDEzIEBAIGJ1aWxkX291dGVyX2ZpZWxkX2FjY2VzcyAoaWQsIGRlY2wpCiB7
CiAgIHRyZWUgYWNjZXNzID0gTlVMTF9UUkVFOwogICB0cmVlIGN0eCA9IFRSRUVfVFlQRSAoREVD
TF9DT05URVhUIChUWVBFX05BTUUgKGN1cnJlbnRfY2xhc3MpKSk7CisgIHRyZWUgZGVjbF9jdHgg
PSBERUNMX0NPTlRFWFQgKGRlY2wpOwogCi0gIC8qIElmIGRlY2wncyBjbGFzcyBpcyB0aGUgZGly
ZWN0IG91dGVyIGNsYXNzIG9mIHRoZSBjdXJyZW50X2NsYXNzLAotICAgICBidWlsZCB0aGUgYWNj
ZXNzIGFzIGB0aGlzJDxuPi48ZmllbGQ+Jy4gTm90ZSB0aGF0IHdlIHdpbGwgYnJlYWsKLSAgICAg
dGhlIGBwcml2YXRlJyBiYXJyaWVyIGlmIHdlJ3JlIG5vdCBlbWl0dGluZyBieXRlY29kZXMuICov
Ci0gIGlmIChjdHggPT0gREVDTF9DT05URVhUIChkZWNsKSAKKyAgLyogSWYgdGhlIGltbWVkaWF0
ZSBlbmNsb3NpbmcgY29udGV4dCBvZiB0aGUgY3VycmVudCBjbGFzcyBpcyB0aGUKKyAgICAgZmll
bGQgZGVjbCdzIGNsYXNzIG9yIGluaGVyaXRzIGZyb20gaXQ7IGJ1aWxkIHRoZSBhY2Nlc3MgYXMK
KyAgICAgYHRoaXMkPG4+LjxmaWVsZD4nLiBOb3RlIHRoYXQgd2Ugd2lsbCBicmVhayB0aGUgYHBy
aXZhdGUnIGJhcnJpZXIKKyAgICAgaWYgd2UncmUgbm90IGVtaXR0aW5nIGJ5dGVjb2Rlcy4gKi8K
KyAgaWYgKChjdHggPT0gZGVjbF9jdHggfHwgaW5oZXJpdHNfZnJvbV9wIChjdHgsIGRlY2xfY3R4
KSkKICAgICAgICYmICghRklFTERfUFJJVkFURSAoZGVjbCkgfHwgIWZsYWdfZW1pdF9jbGFzc19m
aWxlcyApKQogICAgIHsKICAgICAgIHRyZWUgdGhpc24gPSBidWlsZF9jdXJyZW50X3RoaXNuIChj
dXJyZW50X2NsYXNzKTsKQEAgLTc4NTcsMTQgKzc4NTksMTQgQEAgYnVpbGRfb3V0ZXJfZmllbGRf
YWNjZXNzIChpZCwgZGVjbCkKICAgICAgIC8qIE5vdyB3ZSBjaGFpbiB0aGUgcmVxdWlyZWQgbnVt
YmVyIG9mIGNhbGxzIHRvIHRoZSBhY2Nlc3MkMCB0bwogCSBnZXQgYSBob2xkIHRvIHRoZSBlbmNs
b3NpbmcgaW5zdGFuY2Ugd2UgbmVlZCwgYW5kIHRoZW4gd2UKIAkgYnVpbGQgdGhlIGZpZWxkIGFj
Y2Vzcy4gKi8KLSAgICAgIGFjY2VzcyA9IGJ1aWxkX2FjY2Vzc190b190aGlzbiAoY3VycmVudF9j
bGFzcywgREVDTF9DT05URVhUIChkZWNsKSwgbGMpOworICAgICAgYWNjZXNzID0gYnVpbGRfYWNj
ZXNzX3RvX3RoaXNuIChjdXJyZW50X2NsYXNzLCBkZWNsX2N0eCwgbGMpOwogCiAgICAgICAvKiBJ
ZiB0aGUgZmllbGQgaXMgcHJpdmF0ZSBhbmQgd2UncmUgZ2VuZXJhdGluZyBieXRlY29kZSwgdGhl
bgogICAgICAgICAgd2UgZ2VuZXJhdGUgYW4gYWNjZXNzIG1ldGhvZCAqLwogICAgICAgaWYgKEZJ
RUxEX1BSSVZBVEUgKGRlY2wpICYmIGZsYWdfZW1pdF9jbGFzc19maWxlcyApCiAJewogCSAgdHJl
ZSBuYW1lID0gYnVpbGRfb3V0ZXJfZmllbGRfYWNjZXNzX21ldGhvZHMgKGRlY2wpOwotCSAgYWNj
ZXNzID0gYnVpbGRfb3V0ZXJfZmllbGRfYWNjZXNzX2V4cHIgKGxjLCBERUNMX0NPTlRFWFQgKGRl
Y2wpLAorCSAgYWNjZXNzID0gYnVpbGRfb3V0ZXJfZmllbGRfYWNjZXNzX2V4cHIgKGxjLCBkZWNs
X2N0eCwKIAkJCQkJCSAgbmFtZSwgYWNjZXNzLCBOVUxMX1RSRUUpOwogCX0KICAgICAgIC8qIE90
aGVyd2lzZSB3ZSB1c2UgYGFjY2VzcyQodGhpcyQ8aj4pLiAuLi4gYWNjZXNzJCh0aGlzJDxpPiku
PGZpZWxkPicuCkBAIC03ODk4LDggKzc5MDAsMTUgQEAgb3V0ZXJfZmllbGRfYWNjZXNzX3AgKHR5
cGUsIGRlY2wpCiAgICAgewogICAgICAgaWYgKHR5cGUgPT0gREVDTF9DT05URVhUIChkZWNsKSkK
IAlyZXR1cm4gMTsKKwogICAgICAgaWYgKCFERUNMX0NPTlRFWFQgKFRZUEVfTkFNRSAodHlwZSkp
KQotCWJyZWFrOworCXsKKwkgIC8qIEJlZm9yZSB3ZSBnaXZlIHVwLCBzZWUgd2hldGhlciB0aGUg
ZmllbGQgaXMgaW5oZXJpdGVkIGZyb20KKwkgICAgIHRoZSBlbmNsb3NpbmcgY29udGV4dCB3ZSdy
ZSBjb25zaWRlcmluZy4gKi8KKwkgIGlmIChpbmhlcml0c19mcm9tX3AgKHR5cGUsIERFQ0xfQ09O
VEVYVCAoZGVjbCkpKQorCSAgICByZXR1cm4gMTsKKwkgIGJyZWFrOworCX0KICAgICB9CiAKICAg
cmV0dXJuIDA7CkBAIC04MjIxLDggKzgyMzAsMTMgQEAgYnVpbGRfYWNjZXNzX3RvX3RoaXNuIChm
cm9tLCB0bywgbGMpCiAJICBhY2Nlc3MgPSBidWlsZF9tZXRob2RfaW52b2NhdGlvbiAoYWNjZXNz
MF93ZmwsIGFjY2Vzcyk7CiAJICBhY2Nlc3MgPSBtYWtlX3F1YWxpZmllZF9wcmltYXJ5IChjbiwg
YWNjZXNzLCBsYyk7CiAJfQotICAgICAgCi0gICAgICBmcm9tID0gVFJFRV9UWVBFIChERUNMX0NP
TlRFWFQgKFRZUEVfTkFNRSAoZnJvbSkpKTsKKworICAgICAgLyogaWYgRlJPTSBpc24ndCBhbiBp
bnRlciBjbGFzcywgdGhhdCdzIGZpbmUsIHdlJ3ZlIGRvbmUKKyAgICAgICAgIGVub3VnaC4gV2hh
dCB3ZSdyZSBsb29raW5nIGZvciBjYW4gYmUgYWNjZXNzZWQgZnJvbSB0aGVyZS4gKi8KKyAgICAg
IGZyb20gPSBERUNMX0NPTlRFWFQgKFRZUEVfTkFNRSAoZnJvbSkpOworICAgICAgaWYgKCFmcm9t
KQorCWJyZWFrOworICAgICAgZnJvbSA9IFRSRUVfVFlQRSAoZnJvbSk7CiAgICAgfQogICByZXR1
cm4gYWNjZXNzOwogfQo=



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2000-12-20 12:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-20 12:25 java/1396: Compiler problem with LinkedList iterator bryce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).