diagnose PR3281:crash02.ll with:
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
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp
index 12bb659..681a662 100644
--- a/lib/AsmParser/LLParser.cpp
+++ b/lib/AsmParser/LLParser.cpp
@@ -1136,6 +1136,9 @@
 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;