diff options
| author | Chris Lattner <sabre@nondot.org> | 2001-07-25 22:47:55 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2001-07-25 22:47:55 +0000 | 
| commit | e5a57ee363ecceb1f0047da7d8e72460965ec102 (patch) | |
| tree | 22226613c39a2e2028cb781020aca3e9b27591d6 /lib/Bytecode/Writer/ConstantWriter.cpp | |
| parent | 8b81bf5046cdc76d217396c1f42bb7d784619e5e (diff) | |
Add support for extern varargs methods & varargs method calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode/Writer/ConstantWriter.cpp')
| -rw-r--r-- | lib/Bytecode/Writer/ConstantWriter.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/lib/Bytecode/Writer/ConstantWriter.cpp b/lib/Bytecode/Writer/ConstantWriter.cpp index 7e2c9307b9..bac5a4c050 100644 --- a/lib/Bytecode/Writer/ConstantWriter.cpp +++ b/lib/Bytecode/Writer/ConstantWriter.cpp @@ -28,6 +28,9 @@ void BytecodeWriter::outputType(const Type *T) {      assert(Slot != -1 && "Type used but not available!!");      output_vbr((unsigned)Slot, Out); +    // Output the number of arguments to method (+1 if varargs): +    output_vbr(MT->getParamTypes().size()+MT->isVarArg(), Out); +      // Output all of the arguments...      MethodType::ParamTypes::const_iterator I = MT->getParamTypes().begin();      for (; I != MT->getParamTypes().end(); ++I) { @@ -36,8 +39,9 @@ void BytecodeWriter::outputType(const Type *T) {        output_vbr((unsigned)Slot, Out);      } -    // Terminate list with VoidTy -    output_vbr((unsigned)Type::VoidTy->getPrimitiveID(), Out); +    // Terminate list with VoidTy if we are a varargs function... +    if (MT->isVarArg()) +      output_vbr((unsigned)Type::VoidTy->getPrimitiveID(), Out);      break;    } | 
