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