NFC. Move verifyIntrinsicIsVarArg from verifier to Intrinsic::matchIntrinsicVarArg since it will be reused for intrinsic remangling code
llvm-svn: 273685
This commit is contained in:
@@ -1060,6 +1060,26 @@ bool Intrinsic::matchIntrinsicType(Type *Ty, ArrayRef<Intrinsic::IITDescriptor>
|
||||
llvm_unreachable("unhandled");
|
||||
}
|
||||
|
||||
bool
|
||||
Intrinsic::matchIntrinsicVarArg(bool isVarArg,
|
||||
ArrayRef<Intrinsic::IITDescriptor> &Infos) {
|
||||
// If there are no descriptors left, then it can't be a vararg.
|
||||
if (Infos.empty())
|
||||
return isVarArg;
|
||||
|
||||
// There should be only one descriptor remaining at this point.
|
||||
if (Infos.size() != 1)
|
||||
return true;
|
||||
|
||||
// Check and verify the descriptor.
|
||||
IITDescriptor D = Infos.front();
|
||||
Infos = Infos.slice(1);
|
||||
if (D.Kind == IITDescriptor::VarArg)
|
||||
return !isVarArg;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// hasAddressTaken - returns true if there are any uses of this function
|
||||
/// other than direct calls or invokes to it.
|
||||
bool Function::hasAddressTaken(const User* *PutOffender) const {
|
||||
|
||||
Reference in New Issue
Block a user