From 1f377fcaadb6fc5914759d84ad68eb9297510bf2 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 29 Jan 2005 01:05:12 +0000 Subject: [PATCH 1/1] Make sure that we always grow a multiple of 2 operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19902 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Instructions.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/VMCore/Instructions.cpp b/lib/VMCore/Instructions.cpp index e936fafa229..4bbe64a1285 100644 --- a/lib/VMCore/Instructions.cpp +++ b/lib/VMCore/Instructions.cpp @@ -948,6 +948,7 @@ void SwitchInst::addCase(Constant *OnVal, BasicBlock *Dest) { if (OpNo+2 > ReservedSpace) resizeOperands(0); // Get more space! // Initialize some new operands. + assert(OpNo+1 < ReservedSpace && "Growing didn't work!"); NumOperands = OpNo+2; OperandList[OpNo].init(OnVal, this); OperandList[OpNo+1].init(Dest, this); @@ -989,14 +990,14 @@ void SwitchInst::removeCase(unsigned idx) { /// void SwitchInst::resizeOperands(unsigned NumOps) { if (NumOps == 0) { - NumOps = (getNumOperands())*3/2; + NumOps = getNumOperands()/2*6; } else if (NumOps*2 > NumOperands) { // No resize needed. if (ReservedSpace >= NumOps) return; } else if (NumOps == NumOperands) { if (ReservedSpace == NumOps) return; } else { - return; + return; } ReservedSpace = NumOps; -- 2.34.1