public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: toddastock@yahoo.com
To: gcc-gnats@gcc.gnu.org
Subject: java/5668: finit$ not called while using a constructor
Date: Tue, 12 Feb 2002 09:36:00 -0000	[thread overview]
Message-ID: <200202121735.g1CHZB116367@localhost.localdomain> (raw)


>Number:         5668
>Category:       java
>Synopsis:       finit$ not called while using a constructor
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 12 09:36:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        3.1 20020211 (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:
If you have a constructor in your Java class the finit$ is not inserted after the super call.  If you omit the constructor all is fine.
>How-To-Repeat:
public class Test
  {
  Object o = new Object();

  Test ( )
    {
      if ( o == null )
        {
          System.err.println("Test failed\n");
        }
    }

  static public void main ( String argv[] )
    {
      new Test();
    }
  }
>Fix:
It's not clear that build_super_invocation is required to force the CAN_COMPLETE_NORMAL flag, however without it I am not sure what might happen in the patch_invoke function.
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/java/parse.y,v
retrieving revision 1.350
diff -r1.350 parse.y
10693c10693,10694
<   if (TREE_CODE (patch) == CALL_EXPR)
---
>   if (TREE_CODE (patch) == CALL_EXPR) {
>     int save_can_complete_normal = CAN_COMPLETE_NORMALLY(patch);
10695c10696,10697
<   else
---
>     CAN_COMPLETE_NORMALLY(patch) = save_can_complete_normal;
>   } else
12462a12465
>       CAN_COMPLETE_NORMALLY(super_wfl)=1;
12471c12474,12476
<       return build_method_invocation (super_wfl, a);
---
>       a=build_method_invocation (super_wfl, a);
>       CAN_COMPLETE_NORMALLY(a)=1;
>       return a;

>Release-Note:
>Audit-Trail:
>Unformatted:


             reply	other threads:[~2002-02-12 17:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-12  9:36 toddastock [this message]
2002-02-12 10:26 Alexandre Petit-Bianco
2002-02-12 10:46 Todd Stock
2002-02-12 11:16 Todd Stock
2002-02-20 12:46 apbianco
2002-04-15  2:46 bryce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200202121735.g1CHZB116367@localhost.localdomain \
    --to=toddastock@yahoo.com \
    --cc=gcc-gnats@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).