6988779: c1_LIRAssembler_x86.cpp crashes VS2010 compiler

The workaround changes the scope of the variable

Reviewed-by: phh, ysr, kvn
This commit is contained in:
Igor Veresov 2010-09-30 16:00:40 -07:00
parent b7d1b4674b
commit 63fd308170

View File

@ -1616,8 +1616,7 @@ void LIR_Assembler::emit_alloc_array(LIR_OpAllocArray* op) {
void LIR_Assembler::type_profile_helper(Register mdo,
ciMethodData *md, ciProfileData *data,
Register recv, Label* update_done) {
uint i;
for (i = 0; i < ReceiverTypeData::row_limit(); i++) {
for (uint i = 0; i < ReceiverTypeData::row_limit(); i++) {
Label next_test;
// See if the receiver is receiver[n].
__ cmpptr(recv, Address(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i))));
@ -1629,7 +1628,7 @@ void LIR_Assembler::type_profile_helper(Register mdo,
}
// Didn't find receiver; find next empty slot and fill it in
for (i = 0; i < ReceiverTypeData::row_limit(); i++) {
for (uint i = 0; i < ReceiverTypeData::row_limit(); i++) {
Label next_test;
Address recv_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i)));
__ cmpptr(recv_addr, (intptr_t)NULL_WORD);