public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* 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-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-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-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-22 13:18 java/5691: super flag lost during method patching Todd Stock
  -- strict thread matches above, loose matches on Subject: below --
2002-02-23 11:10 Todd Stock
2002-02-21 17:26 tromey
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).