diff options
author | Chris Lattner <sabre@nondot.org> | 2005-02-24 05:25:17 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-02-24 05:25:17 +0000 |
commit | fc824c1a7e122004aea332aac7d4add4d89354b3 (patch) | |
tree | 1f8ef77e678228b9e2f99d0f1f284a32888b58e9 /llvm/lib | |
parent | 5f0df0c1e678dfed21e9685d11fb30bad4e0ae83 (diff) | |
download | bcm5719-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.y | 8 |
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 '[' ']' { |