Tighten up handling of checks for shift instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9191 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-10-17 05:11:44 +00:00
parent 60596382aa
commit 888d3bc0cd

View File

@ -1093,8 +1093,8 @@ ConstExpr: CAST '(' ConstVal TO Types ')' {
| ShiftOps '(' ConstVal ',' ConstVal ')' {
if ($5->getType() != Type::UByteTy)
ThrowException("Shift count for shift constant must be unsigned byte!");
if (!$3->getType()->isIntegral())
ThrowException("Shift constant expression requires integral operand!");
if (!$3->getType()->isInteger())
ThrowException("Shift constant expression requires integer operand!");
$$ = ConstantExpr::getShift($1, $3, $5);
};
@ -1631,6 +1631,8 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef {
| ShiftOps ResolvedVal ',' ResolvedVal {
if ($4->getType() != Type::UByteTy)
ThrowException("Shift amount must be ubyte!");
if (!$2->getType()->isInteger())
ThrowException("Shift constant expression requires integer operand!");
$$ = new ShiftInst($1, $2, $4);
}
| CAST ResolvedVal TO Types {