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; } |