JDK-6930035 : C2 type system incorrectly handles case j.l.Object->meet(constant AryPtr)
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs17
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2010-02-25
  • Updated: 2010-09-24
  • Resolved: 2010-03-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u21Fixed 7Fixed hs17Fixed
Description
=== Meet Not Symmetric ===
t   =                   char[int:5]<ciTypeArray length=5 type=<ciTypeArrayKlass name=[C ident=847 PERM address=0x2ccfb18> ident=1225 PERM address=0x3eb3008> *
this=                   java/lang/Object *
mt=(t meet this)=       java/lang/Object *
t_dual=                 int:65535..0:www[int:5]<ciTypeArray length=5 type=<ciTypeArrayKlass name=[C ident=847 PERM address=0x2ccfb18> ident=1225 PERM address=0x3eb3008> *,iid=top
this_dual=              java/lang/Object:TopPTR *,iid=top
mt_dual=                java/lang/Object:TopPTR *,iid=top
mt_dual meet t_dual=    int:65535..0:www[int:5]


mt->_dual->xmeet(t->_dual) has ptr==Constant but _const_oop field is not set.

Comments
PUBLIC COMMENTS The meet code for dual of Object->meet(constant AryPtr) does not set _const_oop field in the resulting dual AryPtr type. Solution: Add missing code.
26-02-2010

EVALUATION ChangeSet=http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/2432acbee618,ChangeRequest=6930035
26-02-2010