From 568463b556a8e60445f76f14965cddaa15ad484b Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sat, 24 Jul 2010 23:00:26 +0000 Subject: [PATCH] Make the ll parser check that arguments have valid types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109361 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/LLParser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 61b1ae5e97c..19e51e32cb9 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -3710,8 +3710,12 @@ bool LLParser::ParseCall(Instruction *&Inst, PerFunctionState &PFS, !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector ParamTypes; - for (unsigned i = 0, e = ArgList.size(); i != e; ++i) + for (unsigned i = 0, e = ArgList.size(); i != e; ++i) { + const Type* ArgTy = ArgList[i].V->getType(); + if (!FunctionType::isValidArgumentType(ArgTy)) + return Error(ArgList[i].Loc, "Invalid argument type for LLVM function"); ParamTypes.push_back(ArgList[i].V->getType()); + } if (!FunctionType::isValidReturnType(RetType)) return Error(RetTypeLoc, "Invalid result type for LLVM function"); -- 2.34.1