Add comment.
[oota-llvm.git] / lib / VMCore / Instructions.cpp
index 8a375048bf1e5388c6b7c46498335fb81298dcc7..c0b3413da33782870832f11d011181ba3ab69485 100644 (file)
@@ -598,45 +598,42 @@ ReturnInst::ReturnInst(BasicBlock *InsertAtEnd)
   : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, 0, InsertAtEnd) {
 }
 
-ReturnInst::ReturnInst(const std::vector<Value *> &retVals, 
+ReturnInst::ReturnInst(Value * const* retVals, unsigned N,
                        Instruction *InsertBefore)
-  : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, retVals.size(), 
-                   InsertBefore) {
-  if (!retVals.empty())
-    init(&retVals[0], retVals.size());
+  : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, N, InsertBefore) {
+  if (N != 0)
+    init(retVals, N);
 }
-ReturnInst::ReturnInst(const std::vector<Value *> &retVals, 
+ReturnInst::ReturnInst(Value * const* retVals, unsigned N,
                        BasicBlock *InsertAtEnd)
-  : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, retVals.size(), 
-                   InsertAtEnd) {
-  if (!retVals.empty())
-    init(&retVals[0], retVals.size());
+  : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, N, InsertAtEnd) {
+  if (N != 0)
+    init(retVals, N);
 }
-ReturnInst::ReturnInst(const std::vector<Value *> &retVals)
-  : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, retVals.size()) {
-  if (!retVals.empty())
-    init(&retVals[0], retVals.size());
+ReturnInst::ReturnInst(Value * const* retVals, unsigned N)
+  : TerminatorInst(Type::VoidTy, Instruction::Ret, &RetVal, N) {
+  if (N != 0)
+    init(retVals, N);
 }
 
-void ReturnInst::init(const Value * const* retVals, unsigned N) {
-
+void ReturnInst::init(Value * const* retVals, unsigned N) {
   assert (N > 0 && "Invalid operands numbers in ReturnInst init");
 
   NumOperands = N;
   if (NumOperands == 1) {
-    const Value *V = *retVals;
+    Value *V = *retVals;
     if (V->getType() == Type::VoidTy)
       return;
-    RetVal.init(const_cast<Value*>(V), this);
+    RetVal.init(V, this);
     return;
   }
 
   Use *OL = OperandList = new Use[NumOperands];
   for (unsigned i = 0; i < NumOperands; ++i) {
-    const Value *V = *retVals++;
+    Value *V = *retVals++;
     assert(!isa<BasicBlock>(V) &&
            "Cannot return basic block.  Probably using the incorrect ctor");
-    OL[i].init(const_cast<Value *>(V), this);
+    OL[i].init(V, this);
   }
 }