harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Naveen Neelakantam (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-3222) assertion fires with DaCapo eclipse (jitrino built in debug)
Date Tue, 27 Feb 2007 00:41:05 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-3222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Naveen Neelakantam updated HARMONY-3222:
----------------------------------------

    Attachment: imm_cast_bug.patch

This patch (imm_cast_bug) fixes the issue.  The problem is with casting.  Basically the following
was occuring:

in32 cast to uint32 cast to int64

As a result, negative constants would become large positive constants:

-1 cast to 4294967295 cast to 4294967295

If this casted value was used to dereference an array it would be multipled by the array element
size (let's say 4),  which would exceed the maximum value that could fit in a 32-bit integer:

4294967295* 4 = 17179869180

> assertion fires with DaCapo eclipse (jitrino built in debug)
> ------------------------------------------------------------
>
>                 Key: HARMONY-3222
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3222
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: RHEL4 update 4, core 2 duo, gcc 4.1.0
>            Reporter: Naveen Neelakantam
>         Attachments: imm_cast_bug.patch
>
>
> To see the assert, jitrino must be built in debug mode and the -Xem:server option must
be used
> > java -showversion -Xem:server -jar dacapo-2006-10-MR1.jar eclipse
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or
its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r510120, (Feb 21 2007), Linux/ia32/gcc 4.1.0, debug build
> http://incubator.apache.org/harmony
> ===== DaCapo eclipse starting =====
> <setting up workspace...>
> <creating projects..............................................................>
> <running tests at level 0...>
> <performing build tests...>
>         org.apache.ant (not open) opening cleaning building
>         org.junit (not open) opening cleaning building
> java: /home/zilles/neelakan/Sandbox/Harmony/test/working_vm/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp:92:
void Jitrino::Ia32::Opnd::setMemOpndSubOpnd(Jitrino::Ia32::MemOpndSubOpndKind, Jitrino::Ia32::Opnd*):
Assertion `(so != MemOpndSubOpndKind_Displacement) || (2147483647 >= opnd->getImmValue()
&& (-2147483647 - 1) <= opnd->getImmValue())' failed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message