Add checks for the landingpad instruction's clause values to make sure that

they're the correct type.

llvm-svn: 137511
This commit is contained in:
Bill Wendling 2011-08-12 20:52:25 +00:00
parent 70a315c363
commit a52aa3c18f
1 changed files with 10 additions and 0 deletions

View File

@ -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<ArrayType>(V->getType()))
Error(VLoc, "'catch' clause has an invalid type");
} else {
if (!isa<ArrayType>(V->getType()))
Error(VLoc, "'filter' clause has an invalid type");
}
LP->addClause(V);
}