reject PR3281:crash11.ll with:
llvm-as: crash11.ll:2:27: function may not return return opaque type "xw" = tail call opaque @608(label %31) ^ llvm-svn: 61722
This commit is contained in:
parent
8f57d29e0c
commit
dc83a54567
|
@ -602,11 +602,17 @@ GlobalValue *LLParser::GetGlobalVal(unsigned ID, const Type *Ty, LocTy Loc) {
|
|||
|
||||
// Otherwise, create a new forward reference for this value and remember it.
|
||||
GlobalValue *FwdVal;
|
||||
if (const FunctionType *FT = dyn_cast<FunctionType>(PTy->getElementType()))
|
||||
if (const FunctionType *FT = dyn_cast<FunctionType>(PTy->getElementType())) {
|
||||
// Function types can return opaque but functions can't.
|
||||
if (isa<OpaqueType>(FT->getReturnType())) {
|
||||
Error(Loc, "function may not return return opaque type");
|
||||
return 0;
|
||||
}
|
||||
FwdVal = Function::Create(FT, GlobalValue::ExternalWeakLinkage, "", M);
|
||||
else
|
||||
} else {
|
||||
FwdVal = new GlobalVariable(PTy->getElementType(), false,
|
||||
GlobalValue::ExternalWeakLinkage, 0, "", M);
|
||||
}
|
||||
|
||||
ForwardRefValIDs[ID] = std::make_pair(FwdVal, Loc);
|
||||
return FwdVal;
|
||||
|
|
Loading…
Reference in New Issue