mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 14:10:41 +00:00
Add a query to tell if a landing pad has a catch-all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177675 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ced228dec3
commit
8233050895
@ -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
Block a user