public inbox for java-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true
@ 2005-04-19 22:30 mark at gcc dot gnu dot org
  2005-04-19 22:55 ` [Bug java/21115] " daney at gcc dot gnu dot org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: mark at gcc dot gnu dot org @ 2005-04-19 22:30 UTC (permalink / raw)
  To: java-prs

This is reduced from the eclipse problem I was seeing.
Compile the following Test.java with gcj --main=Test Test.java

public abstract class Test
{
  public static void main(String[] args) throws Exception
  {
    Class c = Class.forName("Invoke");
    Object o = c.newInstance();
    Test t = (Test) o;
    t.test("FALSE", false);
    t.test("TRUE", true);
  }

  public abstract boolean test(String s, boolean b);
}

Compile the Invoke.java class with gcj -C:

public class Invoke extends Test
{
  public boolean test(String s, boolean b)
  {
    if (b)
      System.out.println(s + ": TRUE!");
    else
      System.out.println(s + ": FALSE!");
    return b;
  }
}

Then run the expected output is:

FALSE: FALSE!
TRUE: TRUE!

But when running ./a.out you will get:

FALSE: TRUE!
TRUE: TRUE!

Running this completely interpreted (gcj -C Test.java; gij Test) produces the
correct output. It also works correctly on powerpc-unknown-linux-gnu (either
partly pre-compiled or fully interpreted).

-- 
           Summary: false boolean argument passed from pre-compiled to
                    interpreted method is true
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mark at gcc dot gnu dot org
                CC: aph at redhat dot com,gcc-bugs at gcc dot gnu dot
                    org,java-prs at gcc dot gnu dot org,tromey at redhat dot
                    com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
@ 2005-04-19 22:55 ` daney at gcc dot gnu dot org
  2005-04-19 23:35 ` [Bug libgcj/21115] " pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: daney at gcc dot gnu dot org @ 2005-04-19 22:55 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From daney at gcc dot gnu dot org  2005-04-19 22:55 -------
Replacing Test.java with this seems to work:

import java.lang.reflect.*;

public abstract class Test
 {
   public static void main(String[] args) throws Exception
   {
     Class c = Class.forName("Invoke");
     Method m = c.getMethod ("test", new Class[]{String.class, Boolean.TYPE});
     Object o = c.newInstance();

     Object r = m.invoke(o, new Object[] {"FALSE", Boolean.FALSE});

     System.out.println("false == " + r);

     r = m.invoke(o, new Object[] {"TRUE", Boolean.TRUE});

     System.out.println("true == " + r);
   }
   public abstract boolean test(String s, boolean b);
 }

My tests were with 3.4.2 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
  2005-04-19 22:55 ` [Bug java/21115] " daney at gcc dot gnu dot org
@ 2005-04-19 23:35 ` pinskia at gcc dot gnu dot org
  2005-04-20  0:50 ` green at redhat dot com
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-19 23:35 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-19 23:35 -------
I want to say this is libffi bug as other have pointed out on #gcj.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
          Component|java                        |libgcj


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
  2005-04-19 22:55 ` [Bug java/21115] " daney at gcc dot gnu dot org
  2005-04-19 23:35 ` [Bug libgcj/21115] " pinskia at gcc dot gnu dot org
@ 2005-04-20  0:50 ` green at redhat dot com
  2005-04-20  0:57 ` pinskia at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: green at redhat dot com @ 2005-04-20  0:50 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From green at redhat dot com  2005-04-20 00:50 -------
valgrind indicates that this uninitialized memory read is cause the bad behaviour:

green ==12019== Conditional jump or move depends on uninitialised value(s)
green ==12019==    at 0x1BEEB99C: _Jv_InterpMethod::run(void*, ffi_raw*)
(interpret.cc:2113)
green ==12019==    by 0x1BEEFF5A: _Jv_InterpMethod::run_normal(ffi_cif*, void*,
ffi_raw*, void*) (interpret.cc:277)
green ==12019==    by 0x1C2F51B9: ffi_closure_raw_SYSV (ffi.c:416)
green ==12019==    by 0x80489EE: Test::main(JArray<java::lang::String*>*) (in
/home/green/pr21115/a.out)

interpet.cc:2113 is the ifeq opcode.

So it seems that either libffi is buggy, or we're using it incorrectly.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |green at redhat dot com
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-04-20 00:50:52
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2005-04-20  0:50 ` green at redhat dot com
@ 2005-04-20  0:57 ` pinskia at gcc dot gnu dot org
  2005-04-20  1:37 ` tromey at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-20  0:57 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-20 00:57 -------
Hmm, that would mean we are trying to jump based on the agrument:
    insn_ifeq:
      {
        if (POPI() == 0)
          TAKE_GOTO;
        else
          SKIP_GOTO;
      }
      NEXT_INSN;

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2005-04-20  0:57 ` pinskia at gcc dot gnu dot org
@ 2005-04-20  1:37 ` tromey at gcc dot gnu dot org
  2005-04-20  5:06 ` green at redhat dot com
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-04-20  1:37 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From tromey at gcc dot gnu dot org  2005-04-20 01:37 -------
For me this fails if I compile Test.java with -O2,
but not with -O0 or -O1.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2005-04-20  1:37 ` tromey at gcc dot gnu dot org
@ 2005-04-20  5:06 ` green at redhat dot com
  2005-04-20 14:07 ` pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: green at redhat dot com @ 2005-04-20  5:06 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From green at redhat dot com  2005-04-20 05:06 -------
I think I see the problem here.  The call in Test.java...

   t.test(false, "FALSE");

...gets compiled into:

   mov    %eax,0x8(%esp) ;
   movb   $0x0,0x4(%esp) ; false boolean value
   mov    %edx,(%esp)    ; 
   call   *%ecx

Notice that we're only storing a byte into the word here at 0x4(%esp).

The "raw" libffi interface assumes that the call stack from the native code is
exactly what we'd see on the bytecode stack.  This obviously isn't the case,
since, IIRC, booleans are represented as full words on the stack.  And, indeed,
when we get the value of the boolean argument we're doing a LOADI from memory
copied from the 0x4(%esp).  Three quarters of that word are complete garbage, so
the value of our LOADI is unknown (and, for those of us seeing failures, non-zero).

Possible fixes include:

- promoting booleans to words for function calls
- "fixing up" boolean args for raw calls
- don't use the raw call mechanis

I like the first option, but will it cause problems with CNI code?



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2005-04-20  5:06 ` green at redhat dot com
@ 2005-04-20 14:07 ` pinskia at gcc dot gnu dot org
  2005-04-20 14:30 ` mark at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-20 14:07 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-20 14:07 -------
(In reply to comment #6)
> I think I see the problem here.  The call in Test.java...
> 
>    t.test(false, "FALSE");

And now the reason why it works on PPC, passing via registers.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2005-04-20 14:07 ` pinskia at gcc dot gnu dot org
@ 2005-04-20 14:30 ` mark at gcc dot gnu dot org
  2005-04-20 14:38 ` aph at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: mark at gcc dot gnu dot org @ 2005-04-20 14:30 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From mark at gcc dot gnu dot org  2005-04-20 14:30 -------
Posted a patch to implement option 2 of comment #6
- "fixing up" boolean args for raw calls
http://gcc.gnu.org/ml/java-patches/2005-q2/msg00242.html

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2005-04-20 14:30 ` mark at gcc dot gnu dot org
@ 2005-04-20 14:38 ` aph at gcc dot gnu dot org
  2005-04-21 13:38 ` aph at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: aph at gcc dot gnu dot org @ 2005-04-20 14:38 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From aph at gcc dot gnu dot org  2005-04-20 14:38 -------
This is indeed a libffi bug.

Whether a boolean is promoted to a full word or not is a part of the system ABI.
 It's controlled in gcc by TARGET_PROMOTE_PROTOTYPES, and is part of the gcc
back end.

What you have discovered is that the raw FFI abi does not correspond to the
SYSV/X86 abi, and te args need to be massaged.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2005-04-20 14:38 ` aph at gcc dot gnu dot org
@ 2005-04-21 13:38 ` aph at gcc dot gnu dot org
  2005-04-21 15:02 ` [Bug java/21115] " aph at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: aph at gcc dot gnu dot org @ 2005-04-21 13:38 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From aph at gcc dot gnu dot org  2005-04-21 13:38 -------
OK, so it isn't a libffi bug.

The odd thing here is that despite the fact that promotion of outgoing args is a
machine dependent issue, each language front end is required to do it.

This patch corresponds as closely as possible to the equivalent logic in the C++
front end.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2005-04-21 13:38 ` aph at gcc dot gnu dot org
@ 2005-04-21 15:02 ` aph at gcc dot gnu dot org
  2005-04-21 16:04 ` [Bug libgcj/21115] " mark at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: aph at gcc dot gnu dot org @ 2005-04-21 15:02 UTC (permalink / raw)
  To: java-prs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.0.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug libgcj/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2005-04-21 15:02 ` [Bug java/21115] " aph at gcc dot gnu dot org
@ 2005-04-21 16:04 ` mark at gcc dot gnu dot org
  2005-04-21 16:06 ` [Bug java/21115] " pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: mark at gcc dot gnu dot org @ 2005-04-21 16:04 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From mark at gcc dot gnu dot org  2005-04-21 16:04 -------
The patch from comment #10 fixes the Test program and makes my patch to
interpet.cc unnecessary. Also when recompiling libgcj with this a fully
interpreter eclipse is again able to import and build the classpath project
without any trouble.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|java                        |libgcj
   Target Milestone|4.0.1                       |---


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2005-04-21 16:04 ` [Bug libgcj/21115] " mark at gcc dot gnu dot org
@ 2005-04-21 16:06 ` pinskia at gcc dot gnu dot org
  2005-04-21 16:23 ` cvs-commit at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-21 16:06 UTC (permalink / raw)
  To: java-prs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|libgcj                      |java
   Target Milestone|---                         |4.0.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2005-04-21 16:06 ` [Bug java/21115] " pinskia at gcc dot gnu dot org
@ 2005-04-21 16:23 ` cvs-commit at gcc dot gnu dot org
  2005-04-28 16:35 ` cvs-commit at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-04-21 16:23 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-21 16:22 -------
Subject: Bug 21115

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	green@gcc.gnu.org	2005-04-21 16:22:33

Modified files:
	libjava        : ChangeLog 
Added files:
	libjava/testsuite/libjava.special: pr21115I.java pr21115.java 
	                                   pr21115.out special.exp 

Log message:
	2005-04-21  Anthony Green  <green@redhat.com>
	
	PR libgcj/21115
	* testsuite/libjava.special/special.exp,
	testsuite/libjava.special/pr21115I.java,
	testsuite/libjava.special/pr21115.java,
	testsuite/libjava.special/pr21115.out: New files.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&r1=1.3530&r2=1.3531
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.special/pr21115I.java.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.special/pr21115.java.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.special/pr21115.out.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.special/special.exp.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2005-04-21 16:23 ` cvs-commit at gcc dot gnu dot org
@ 2005-04-28 16:35 ` cvs-commit at gcc dot gnu dot org
  2005-04-29 18:43 ` cvs-commit at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-04-28 16:35 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-28 16:35 -------
Subject: Bug 21115

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-branch
Changes by:	aph@gcc.gnu.org	2005-04-28 16:35:25

Modified files:
	gcc/java       : expr.c java-except.h verify.c verify-glue.c 
	                 except.c ChangeLog 

Log message:
	2005-04-28  Andrew Haley  <aph@redhat.com>
	
	PR java/21115
	* expr.c (force_evaluation_order): Convert outgoing args smaller
	than integer.
	
	PR java/20768
	* java-except.h (struct eh_range.handler): Remove unused field.
	(handle_nested_ranges): Remove function declaration.
	(sanity_check_exception_range): Add function declaration.
	* verify.c (verify_jvm_instructions): Remove call to
	handle_nested_ranges.
	(start_pc_cmp): Remove function.
	(verify_jvm_instructions): Remove PC sorting of exception regions.
	* verify-glue.c (verify_jvm_instructions_new): Call
	sanity_check_exception_range.
	* except.c (link_handler, eh_range_freelist, link_handler,
	handle_nested_ranges): Remove.
	(add_handler): Rewrite.
	(sanity_check_exception_range): New function.
	(print_ranges): New function.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/expr.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.218.4.2&r2=1.218.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/java-except.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.18&r2=1.18.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/verify.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.69&r2=1.69.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/verify-glue.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4.2.1&r2=1.4.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/except.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.47&r2=1.47.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1556.2.16&r2=1.1556.2.17



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2005-04-28 16:35 ` cvs-commit at gcc dot gnu dot org
@ 2005-04-29 18:43 ` cvs-commit at gcc dot gnu dot org
  2005-04-29 18:44 ` cvs-commit at gcc dot gnu dot org
  2005-04-29 19:24 ` pinskia at gcc dot gnu dot org
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-04-29 18:43 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-29 18:42 -------
Subject: Bug 21115

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	aph@gcc.gnu.org	2005-04-29 18:42:50

Modified files:
	gcc/java       : java-tree.h expr.c decl.c class.c constants.c 
	                 ChangeLog 

Log message:
	2005-04-28  Andrew Haley  <aph@redhat.com>
	
	PR java/19285
	* java-tree.h (soft_resolvepoolentry_node): New.
	(alloc_constant_fieldref): Declare.
	* expr.c (expand_java_field_op): Don't call class_init for
	accesses to static fields with indirect dispatch.
	* builtins.c (initialize_builtins): Add "__builtin_expect".
	* decl.c (soft_resolvepoolentry_node): New variable.
	(java_init_decl_processing): Create a decl for
	"_Jv_ResolvePoolEntry".
	* class.c (build_fieldref_cache_entry): New function.
	(build_static_field_ref): Rewrite for indirect dispatch.
	* constants.c (find_name_and_type_constant_tree): New function.
	(alloc_constant_fieldref): Likewise.
	(build_constants_constructor): Handle CONSTANT_Fieldref and
	CONSTANT_NameAndType.
	
	PR java/21115
	* expr.c (force_evaluation_order): Convert outgoing args smaller
	than integer.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/java-tree.h.diff?cvsroot=gcc&r1=1.229&r2=1.230
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/expr.c.diff?cvsroot=gcc&r1=1.222&r2=1.223
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/decl.c.diff?cvsroot=gcc&r1=1.218&r2=1.219
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/class.c.diff?cvsroot=gcc&r1=1.224&r2=1.225
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/constants.c.diff?cvsroot=gcc&r1=1.40&r2=1.41
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1601&r2=1.1602



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2005-04-29 18:43 ` cvs-commit at gcc dot gnu dot org
@ 2005-04-29 18:44 ` cvs-commit at gcc dot gnu dot org
  2005-04-29 19:24 ` pinskia at gcc dot gnu dot org
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-04-29 18:44 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-29 18:43 -------
Subject: Bug 21115

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	aph@gcc.gnu.org	2005-04-29 18:43:25

Modified files:
	gcc/java       : builtins.c 

Log message:
	2005-04-28  Andrew Haley  <aph@redhat.com>
	
	PR java/19285
	* java-tree.h (soft_resolvepoolentry_node): New.
	(alloc_constant_fieldref): Declare.
	* expr.c (expand_java_field_op): Don't call class_init for
	accesses to static fields with indirect dispatch.
	* builtins.c (initialize_builtins): Add "__builtin_expect".
	* decl.c (soft_resolvepoolentry_node): New variable.
	(java_init_decl_processing): Create a decl for
	"_Jv_ResolvePoolEntry".
	* class.c (build_fieldref_cache_entry): New function.
	(build_static_field_ref): Rewrite for indirect dispatch.
	* constants.c (find_name_and_type_constant_tree): New function.
	(alloc_constant_fieldref): Likewise.
	(build_constants_constructor): Handle CONSTANT_Fieldref and
	CONSTANT_NameAndType.
	
	PR java/21115
	* expr.c (force_evaluation_order): Convert outgoing args smaller
	than integer.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/builtins.c.diff?cvsroot=gcc&r1=1.29&r2=1.30



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug java/21115] false boolean argument passed from pre-compiled to interpreted method is true
  2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2005-04-29 18:44 ` cvs-commit at gcc dot gnu dot org
@ 2005-04-29 19:24 ` pinskia at gcc dot gnu dot org
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-29 19:24 UTC (permalink / raw)
  To: java-prs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-29 19:24 -------
Fixed.  Will show up in 4.0.1.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2005-04-29 19:24 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-19 22:30 [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true mark at gcc dot gnu dot org
2005-04-19 22:55 ` [Bug java/21115] " daney at gcc dot gnu dot org
2005-04-19 23:35 ` [Bug libgcj/21115] " pinskia at gcc dot gnu dot org
2005-04-20  0:50 ` green at redhat dot com
2005-04-20  0:57 ` pinskia at gcc dot gnu dot org
2005-04-20  1:37 ` tromey at gcc dot gnu dot org
2005-04-20  5:06 ` green at redhat dot com
2005-04-20 14:07 ` pinskia at gcc dot gnu dot org
2005-04-20 14:30 ` mark at gcc dot gnu dot org
2005-04-20 14:38 ` aph at gcc dot gnu dot org
2005-04-21 13:38 ` aph at gcc dot gnu dot org
2005-04-21 15:02 ` [Bug java/21115] " aph at gcc dot gnu dot org
2005-04-21 16:04 ` [Bug libgcj/21115] " mark at gcc dot gnu dot org
2005-04-21 16:06 ` [Bug java/21115] " pinskia at gcc dot gnu dot org
2005-04-21 16:23 ` cvs-commit at gcc dot gnu dot org
2005-04-28 16:35 ` cvs-commit at gcc dot gnu dot org
2005-04-29 18:43 ` cvs-commit at gcc dot gnu dot org
2005-04-29 18:44 ` cvs-commit at gcc dot gnu dot org
2005-04-29 19:24 ` pinskia at gcc dot gnu dot org

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).