forked from OSchip/llvm-project
parent
3d9ec39116
commit
b424faa09c
|
@ -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