mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
reject void in intrinsic type lists.
llvm-svn: 99347
This commit is contained in:
parent
4eac41e12e
commit
a682c112da
@ -488,18 +488,17 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R) {
|
||||
}
|
||||
if (EVT(VT).isOverloaded()) {
|
||||
OverloadedVTs.push_back(VT);
|
||||
isOverloaded |= true;
|
||||
isOverloaded = true;
|
||||
}
|
||||
|
||||
// Reject invalid types.
|
||||
if (VT == MVT::isVoid)
|
||||
throw "Intrinsic '" + DefName + " has void in result type list!";
|
||||
|
||||
IS.RetVTs.push_back(VT);
|
||||
IS.RetTypeDefs.push_back(TyEl);
|
||||
}
|
||||
|
||||
if (IS.RetVTs.size() == 1 && IS.RetVTs[0] == MVT::isVoid) {
|
||||
IS.RetVTs.pop_back();
|
||||
IS.RetTypeDefs.pop_back();
|
||||
}
|
||||
|
||||
// Parse the list of parameter types.
|
||||
TypeList = R->getValueAsListInit("ParamTypes");
|
||||
for (unsigned i = 0, e = TypeList->getSize(); i != e; ++i) {
|
||||
@ -520,10 +519,16 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R) {
|
||||
"Expected iAny or vAny type");
|
||||
} else
|
||||
VT = getValueType(TyEl->getValueAsDef("VT"));
|
||||
|
||||
if (EVT(VT).isOverloaded()) {
|
||||
OverloadedVTs.push_back(VT);
|
||||
isOverloaded |= true;
|
||||
isOverloaded = true;
|
||||
}
|
||||
|
||||
// Reject invalid types.
|
||||
if (VT == MVT::isVoid && i != e-1 /*void at end means varargs*/)
|
||||
throw "Intrinsic '" + DefName + " has void in result type list!";
|
||||
|
||||
IS.ParamVTs.push_back(VT);
|
||||
IS.ParamTypeDefs.push_back(TyEl);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user