diagnose PR3281:crash02.ll with:
authorChris Lattner <sabre@nondot.org>
Mon, 5 Jan 2009 08:04:33 +0000 (08:04 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 5 Jan 2009 08:04:33 +0000 (08:04 +0000)
llvm-as: crash02.ll:1:62: invalid function return type
declare { <{ <{}>, void ([1898 x { void ()* }], opaque, ...) (), fp128 * }>, opaque } @t ()
                                                             ^

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

lib/AsmParser/LLParser.cpp

index 12bb659dda3b22f60626eb831f1e0296d346394e..681a6622b3c6a1012eec7f1289cd3f4c841b6ae2 100644 (file)
@@ -1136,6 +1136,9 @@ bool LLParser::ParseArgumentList(std::vector<ArgInfo> &ArgList,
 bool LLParser::ParseFunctionType(PATypeHolder &Result) {
   assert(Lex.getKind() == lltok::lparen);
 
+  if (!FunctionType::isValidReturnType(Result))
+    return TokError("invalid function return type");
+  
   std::vector<ArgInfo> ArgList;
   bool isVarArg;
   unsigned Attrs;