mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 07:34:33 +00:00
one more crash from PR3281, we now diagnose:
llvm-as: t.ll:2:39: function may not return opaque type %"bwmoyl" = tail call coldcc opaque @g() ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61933 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d7a97f06ae
commit
1e407c338f
@ -564,11 +564,18 @@ GlobalValue *LLParser::GetGlobalVal(const std::string &Name, const Type *Ty,
|
||||
|
||||
// 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 opaque type");
|
||||
return 0;
|
||||
}
|
||||
|
||||
FwdVal = Function::Create(FT, GlobalValue::ExternalWeakLinkage, Name, M);
|
||||
else
|
||||
} else {
|
||||
FwdVal = new GlobalVariable(PTy->getElementType(), false,
|
||||
GlobalValue::ExternalWeakLinkage, 0, Name, M);
|
||||
}
|
||||
|
||||
ForwardRefVals[Name] = std::make_pair(FwdVal, Loc);
|
||||
return FwdVal;
|
||||
|
Loading…
x
Reference in New Issue
Block a user