Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 6c934b7ce9a7654a3b8fd6faa4238a2481f899dd..322df344900c3c99cfa9daf0f66c0a78139ce1a4 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -5951,7 +5951,13 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) { |
__ push(size); |
} else { |
int32_t size = ToInteger32(LConstantOperand::cast(instr->size())); |
- __ push(Immediate(Smi::FromInt(size))); |
+ if (size >= 0 && size <= Smi::kMaxValue) { |
+ __ push(Immediate(Smi::FromInt(size))); |
+ } else { |
+ // We should never get here at runtime => abort |
+ __ int3(); |
+ return; |
+ } |
} |
int flags = AllocateDoubleAlignFlag::encode( |