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 | 69331f5726b653e3566768044c449c9461a6f11e (patch) | |
tree | bf8ddd839183b7c272c0430b6acf5d9772099f0a | |
parent | 83beacddc9fe783422523e479a30a94013aec10a (diff) |
add more checking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20296 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 239ae83625..6014ae144f 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/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 '[' ']' { |