From: Bill Wendling Date: Fri, 12 Aug 2011 20:52:25 +0000 (+0000) Subject: Add checks for the landingpad instruction's clause values to make sure that X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=746c882538fb1def27b61f06ce03b320858b1b89;p=oota-llvm.git Add checks for the landingpad instruction's clause values to make sure that they're the correct type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137511 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 6a4c2a8fb93..a5412a6764d 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -3554,6 +3554,16 @@ bool LLParser::ParseLandingPad(Instruction *&Inst, PerFunctionState &PFS) { return true; } + // A 'catch' type expects a non-array constant. A filter clause expects an + // array constant. + if (CT == LandingPadInst::Catch) { + if (isa(V->getType())) + Error(VLoc, "'catch' clause has an invalid type"); + } else { + if (!isa(V->getType())) + Error(VLoc, "'filter' clause has an invalid type"); + } + LP->addClause(V); }