aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-08-15 19:37:11 +0000
committerChris Lattner <sabre@nondot.org>2002-08-15 19:37:11 +0000
commitec1b8a07961bfae1e0d569f57cd8b55d91d01efc (patch)
treee66cb14da39469bab5eae876e0a7c9544c8db4cb
parent2b4dcbb91d7f31cea653c00597eeb98404acc0f2 (diff)
Parse const expr cast instruction the same way the instruction is formed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3353 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/AsmParser/llvmAsmParser.y7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 5eed0ebc57..47685355f6 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -993,9 +993,12 @@ ConstVal : SIntType EINT64VAL { // integral constants
};
-ConstExpr: Types CAST ConstVal {
- $$ = ConstantExpr::getCast($3, $1->get());
+ConstExpr: Types CAST ConstVal TO Types {
+ $$ = ConstantExpr::getCast($3, $5->get());
+ if ($1->get() != $5->get())
+ ThrowException("Mismatching ConstExpr cast type");
delete $1;
+ delete $5;
}
| Types GETELEMENTPTR '(' ConstVal IndexList ')' {
if (!isa<PointerType>($4->getType()))