Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index 16100e46091d8a7a95287b10d718bcaf9a6112c0..5accc77f0b53b8ae33e4f8be7cbbe4cf97179326 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -465,9 +465,16 @@ void HInstruction::PrintTo(StringStream* stream) const { |
void HInstruction::Unlink() { |
ASSERT(IsLinked()); |
ASSERT(!IsControlInstruction()); // Must never move control instructions. |
+ ASSERT(!IsBlockEntry()); // Doesn't make sense to delete these. |
+ ASSERT(previous_ != NULL); |
+ previous_->next_ = next_; |
+ if (next_ == NULL) { |
+ ASSERT(block()->last() == this); |
+ block()->set_last(previous_); |
+ } else { |
+ next_->previous_ = previous_; |
+ } |
clear_block(); |
- if (previous_ != NULL) previous_->next_ = next_; |
- if (next_ != NULL) next_->previous_ = previous_; |
} |