forked from OSchip/llvm-project
Add a query to tell if a landing pad has a catch-all.
llvm-svn: 177675
This commit is contained in:
parent
0d7d62e4b2
commit
d254ab2298
|
@ -2230,6 +2230,9 @@ public:
|
|||
/// to determine what type of clause this is.
|
||||
Value *getClause(unsigned Idx) const { return OperandList[Idx + 1]; }
|
||||
|
||||
/// hasCatchAll - Return 'true' if this landing pad has a catch-all.
|
||||
bool hasCatchAll() const;
|
||||
|
||||
/// isCatch - Return 'true' if the clause and index Idx is a catch clause.
|
||||
bool isCatch(unsigned Idx) const {
|
||||
return !isa<ArrayType>(OperandList[Idx + 1]->getType());
|
||||
|
|
|
@ -256,6 +256,13 @@ void LandingPadInst::addClause(Value *Val) {
|
|||
OperandList[OpNo] = Val;
|
||||
}
|
||||
|
||||
bool LandingPadInst::hasCatchAll() const {
|
||||
for (unsigned I = 0, E = getNumClauses(); I != E; ++I)
|
||||
if (isCatch(I) && isa<ConstantPointerNull>(getClause(I)))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// CallInst Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue