Add a hack for PR5601, a crash on obsolete syntax that we plan to
authorChris Lattner <sabre@nondot.org>
Thu, 26 Nov 2009 22:48:23 +0000 (22:48 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 26 Nov 2009 22:48:23 +0000 (22:48 +0000)
remove in LLVM 3.0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89973 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/LLParser.cpp

index 26b6a09ab19582913d91c6587365fea09c99d206..a92dbf82a0b9db1bb25eb770aededcd886c860c2 100644 (file)
@@ -2701,6 +2701,10 @@ bool LLParser::ParseFunctionHeader(Function *&Fn, bool isDefine) {
   // Add all of the arguments we parsed to the function.
   Function::arg_iterator ArgIt = Fn->arg_begin();
   for (unsigned i = 0, e = ArgList.size(); i != e; ++i, ++ArgIt) {
+    // If we run out of arguments in the Function prototype, exit early.
+    // FIXME: REMOVE THIS IN LLVM 3.0, this is just for the mismatch case above.
+    if (ArgIt == Fn->arg_end()) break;
+    
     // If the argument has a name, insert it into the argument symbol table.
     if (ArgList[i].Name.empty()) continue;