[llvm] r177675 - Add a query to tell if a landing pad has a catch-all.
Bill Wendling
wendling at apple.com
Fri Mar 22 11:47:30 PDT 2013
Okay. Reverted.
-bw
On Mar 22, 2013, at 1:36 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Bill,
>
> On 22/03/13 00:01, Bill Wendling wrote:
>> Author: void
>> Date: Thu Mar 21 18:01:03 2013
>> New Revision: 177675
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=177675&view=rev
>> Log:
>> Add a query to tell if a landing pad has a catch-all.
>
> I think this is a bad idea, as it is highly language specific. For example Ada
> has a catch-all but it isn't "null", so this will give the wrong result for
> Ada. If you added this for the benefit of clang I reckon it would be better to
> move it into the clang source. In any case, I'd rather this wasn't part of the
> landingpad API.
>
> Ciao, Duncan.
>
>>
>> Modified:
>> llvm/trunk/include/llvm/IR/Instructions.h
>> llvm/trunk/lib/IR/Instructions.cpp
>>
>> Modified: llvm/trunk/include/llvm/IR/Instructions.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/Instructions.h?rev=177675&r1=177674&r2=177675&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/IR/Instructions.h (original)
>> +++ llvm/trunk/include/llvm/IR/Instructions.h Thu Mar 21 18:01:03 2013
>> @@ -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());
>>
>> Modified: llvm/trunk/lib/IR/Instructions.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Instructions.cpp?rev=177675&r1=177674&r2=177675&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/IR/Instructions.cpp (original)
>> +++ llvm/trunk/lib/IR/Instructions.cpp Thu Mar 21 18:01:03 2013
>> @@ -256,6 +256,13 @@ void LandingPadInst::addClause(Value *Va
>> 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
>> //===----------------------------------------------------------------------===//
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list