public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: java/5691: super flag lost during method patching
@ 2002-02-21 17:26 tromey
0 siblings, 0 replies; 6+ messages in thread
From: tromey @ 2002-02-21 17:26 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, java-prs, nobody, toddastock, tromey
Synopsis: super flag lost during method patching
Responsible-Changed-From-To: unassigned->tromey
Responsible-Changed-By: tromey
Responsible-Changed-When: Thu Feb 21 16:21:16 2002
Responsible-Changed-Why:
I'm handling the PR.
State-Changed-From-To: open->closed
State-Changed-By: tromey
State-Changed-When: Thu Feb 21 16:21:16 2002
State-Changed-Why:
Per checked in a different fix a day or two ago.
If you try it and have problems, tell me and I will reopen the PR.
Thanks for the report.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5691
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: java/5691: super flag lost during method patching
@ 2002-02-23 11:10 Todd Stock
0 siblings, 0 replies; 6+ messages in thread
From: Todd Stock @ 2002-02-23 11:10 UTC (permalink / raw)
To: tromey; +Cc: gcc-prs
The following reply was made to PR java/5691; it has been noted by GNATS.
From: Todd Stock <toddastock@yahoo.com>
To: tromey@gcc.gnu.org
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: java/5691: super flag lost during method patching
Date: Sat, 23 Feb 2002 10:42:54 -0800
I was wrong, the patch added by Per did fix my problem, however a new
bug has shown up elsewhere that caused my failure.
-Todd
tromey@gcc.gnu.org wrote:
>Synopsis: super flag lost during method patching
>
>Responsible-Changed-From-To: unassigned->tromey
>Responsible-Changed-By: tromey
>Responsible-Changed-When: Thu Feb 21 16:21:16 2002
>Responsible-Changed-Why:
> I'm handling the PR.
>State-Changed-From-To: open->closed
>State-Changed-By: tromey
>State-Changed-When: Thu Feb 21 16:21:16 2002
>State-Changed-Why:
> Per checked in a different fix a day or two ago.
> If you try it and have problems, tell me and I will reopen the PR.
> Thanks for the report.
>
>http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5691
>
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: java/5691: super flag lost during method patching
@ 2002-02-22 13:18 Todd Stock
0 siblings, 0 replies; 6+ messages in thread
From: Todd Stock @ 2002-02-22 13:18 UTC (permalink / raw)
To: tromey; +Cc: gcc-prs
The following reply was made to PR java/5691; it has been noted by GNATS.
From: Todd Stock <toddastock@yahoo.com>
To: tromey@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: java/5691: super flag lost during method patching
Date: Fri, 22 Feb 2002 12:48:15 -0800 (PST)
My problem still exists with the latest patch.
-Todd
__________________________________________________
Do You Yahoo!?
Yahoo! Sports - Coverage of the 2002 Olympic Games
http://sports.yahoo.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: java/5691: super flag lost during method patching
@ 2002-02-18 19:26 Bryce McKinlay
0 siblings, 0 replies; 6+ messages in thread
From: Bryce McKinlay @ 2002-02-18 19:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR java/5691; it has been noted by GNATS.
From: Bryce McKinlay <bryce@waitaki.otago.ac.nz>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, toddastock@yahoo.com,
gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org
Cc:
Subject: Re: java/5691: super flag lost during method patching
Date: Tue, 19 Feb 2002 16:21:38 +1300
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5691
Per has a patch for this too. I imagine he will check it in soon.
Bryce.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: java/5691: super flag lost during method patching
@ 2002-02-14 8:56 Todd Stock
0 siblings, 0 replies; 6+ messages in thread
From: Todd Stock @ 2002-02-14 8:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR java/5691; it has been noted by GNATS.
From: Todd Stock <toddastock@yahoo.com>
To: toddastock@yahoo.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: java/5691: super flag lost during method patching
Date: Thu, 14 Feb 2002 08:49:18 -0800
This is a problem in the bytecode generation..
-Todd
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* java/5691: super flag lost during method patching
@ 2002-02-14 8:46 toddastock
0 siblings, 0 replies; 6+ messages in thread
From: toddastock @ 2002-02-14 8:46 UTC (permalink / raw)
To: gcc-gnats
>Number: 5691
>Category: java
>Synopsis: super flag lost during method patching
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: wrong-code
>Submitter-Id: net
>Arrival-Date: Thu Feb 14 08:46:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:
>Release: 3.1 20020213 (experimental)
>Organization:
>Environment:
System: Linux escher 2.4.9-21 #1 Thu Jan 17 14:16:30 EST 2002 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ./configure -enable-threads=posix --prefix=/home/tstock/local --disable-shared --enable-languages=c++,java
>Description:
In the processs of performing a patch on a expression within a synchronized block the CALL_USING_SUPER flag that was set is lost. Leading to a recursive call of the function. The difference being in the Java Assembler output where the super call to printStackTrace is done with invokevirtual instead of invokespecial.
>How-To-Repeat:
import java.io.*;
import java.util.*;
public class Test extends RuntimeException
{
private Throwable cause;
public static void main(String[] args)
{
new Test().printStackTrace(new PrintWriter(new OutputStreamWriter(System.err)));
}
public void printStackTrace(PrintWriter pw)
{
synchronized (pw)
{
super.printStackTrace(pw);
if (cause != null)
{
pw.println("--- Nested Exception ---");
cause.printStackTrace(pw);
}
}
}
}
>Fix:
Index: parse.y
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/java/parse.y,v
retrieving revision 1.350
diff -u -r1.350 parse.y
--- parse.y 4 Feb 2002 02:38:16 -0000 1.350
+++ parse.y 14 Feb 2002 16:39:25 -0000
@@ -9395,6 +9395,7 @@
tree qual_wfl = QUAL_WFL (q);
tree ret_decl; /* for EH checking */
int location; /* for EH checking */
+ int save_flag;
/* 15.10.1 Field Access Using a Primary */
switch (TREE_CODE (qual_wfl))
@@ -9442,9 +9443,11 @@
CALL_USING_SUPER (qual_wfl) = 1;
location = (TREE_CODE (qual_wfl) == CALL_EXPR ?
EXPR_WFL_LINECOL (TREE_OPERAND (qual_wfl, 0)) : 0);
+ save_flag = CALL_USING_SUPER (qual_wfl);
*where_found = patch_method_invocation (qual_wfl, decl, type,
from_super,
&is_static, &ret_decl);
+ CALL_USING_SUPER(*where_found) = save_flag;
if (*where_found == error_mark_node)
{
RESTORE_THIS_AND_CURRENT_CLASS;
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-02-23 18:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-21 17:26 java/5691: super flag lost during method patching tromey
-- strict thread matches above, loose matches on Subject: below --
2002-02-23 11:10 Todd Stock
2002-02-22 13:18 Todd Stock
2002-02-18 19:26 Bryce McKinlay
2002-02-14 8:56 Todd Stock
2002-02-14 8:46 toddastock
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).