JDK-6930398 : fix for return address locals in OSR entries uses wrong test
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs17
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2010-02-26
  • 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
The fix for 6915557 is attempting to handle locals containing return address specially but the test it's using is wrong.  C2's type system smears together T_ADDRESS with raw pointer types, so TypePtr::NULL_PTr->basic_type() == T_ADDRESS so the logic will trigger for locals which are provably null resulting in asserts later.  The correct fix is to test the ciType or local which correctly distinguishes these cases.

Comments
EVALUATION 6930398: fix for return address locals in OSR entries uses wrong test Reviewed-by: kvn The fix for 6915557 is attempting to handle locals containing return address specially but the test it's using is wrong. C2's type system smears together T_ADDRESS with raw pointer types, so TypePtr::NULL_PTr->basic_type() == T_ADDRESS so the logic will trigger for locals which are provably null resulting in asserts later. The correct fix is to test the ciType of the local which correctly distinguishes these cases. Tested with failing tests from nightly.r src/share/vm/opto/parse1.cpp
02-03-2010

EVALUATION ChangeSet=http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/7d236a9688c5,ChangeRequest=6930398
01-03-2010