summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-02-24 05:25:17 +0000
committerChris Lattner <sabre@nondot.org>2005-02-24 05:25:17 +0000
commitfc824c1a7e122004aea332aac7d4add4d89354b3 (patch)
tree1f8ef77e678228b9e2f99d0f1f284a32888b58e9 /llvm/lib
parent5f0df0c1e678dfed21e9685d11fb30bad4e0ae83 (diff)
downloadbcm5719-llvm-fc824c1a7e122004aea332aac7d4add4d89354b3.tar.gz
bcm5719-llvm-fc824c1a7e122004aea332aac7d4add4d89354b3.zip
add more checking
llvm-svn: 20296
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/AsmParser/llvmAsmParser.y8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y
index 239ae836254..6014ae144f2 100644
--- a/llvm/lib/AsmParser/llvmAsmParser.y
+++ b/llvm/lib/AsmParser/llvmAsmParser.y
@@ -1815,8 +1815,12 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result...
std::vector<std::pair<Constant*,BasicBlock*> >::iterator I = $8->begin(),
E = $8->end();
- for (; I != E; ++I)
- S->addCase(I->first, I->second);
+ for (; I != E; ++I) {
+ if (ConstantInt *CI = dyn_cast<ConstantInt>(I->first))
+ S->addCase(CI, I->second);
+ else
+ ThrowException("Switch case is constant, but not a simple integer!");
+ }
delete $8;
}
| SWITCH IntType ValueRef ',' LABEL ValueRef '[' ']' {
OpenPOWER on IntegriCloud