aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-02-24 05:32:09 +0000
committerChris Lattner <sabre@nondot.org>2005-02-24 05:32:09 +0000
commitd1a326006df65470217b9f2f23a4cee2a9696646 (patch)
tree290bdfa73c98f2eee204f68021b64bcbd71a2901 /include
parent7e6182319dd5baeb1b66bbdc5ab5bf2e9c541341 (diff)
downloadexternal_llvm-d1a326006df65470217b9f2f23a4cee2a9696646.zip
external_llvm-d1a326006df65470217b9f2f23a4cee2a9696646.tar.gz
external_llvm-d1a326006df65470217b9f2f23a4cee2a9696646.tar.bz2
switch instructions only allow constantints for their values, be more specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20298 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Instructions.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h
index eb4188b..0eaba87 100644
--- a/include/llvm/Instructions.h
+++ b/include/llvm/Instructions.h
@@ -22,6 +22,7 @@
namespace llvm {
class BasicBlock;
+class ConstantInt;
class PointerType;
//===----------------------------------------------------------------------===//
@@ -1084,14 +1085,14 @@ public:
/// getCaseValue - Return the specified case value. Note that case #0, the
/// default destination, does not have a case value.
- Constant *getCaseValue(unsigned i) {
+ ConstantInt *getCaseValue(unsigned i) {
assert(i && i < getNumCases() && "Illegal case value to get!");
return getSuccessorValue(i);
}
/// getCaseValue - Return the specified case value. Note that case #0, the
/// default destination, does not have a case value.
- const Constant *getCaseValue(unsigned i) const {
+ const ConstantInt *getCaseValue(unsigned i) const {
assert(i && i < getNumCases() && "Illegal case value to get!");
return getSuccessorValue(i);
}
@@ -1099,7 +1100,7 @@ public:
/// findCaseValue - Search all of the case values for the specified constant.
/// If it is explicitly handled, return the case number of it, otherwise
/// return 0 to indicate that it is handled by the default handler.
- unsigned findCaseValue(const Constant *C) const {
+ unsigned findCaseValue(const ConstantInt *C) const {
for (unsigned i = 1, e = getNumCases(); i != e; ++i)
if (getCaseValue(i) == C)
return i;
@@ -1108,7 +1109,7 @@ public:
/// addCase - Add an entry to the switch instruction...
///
- void addCase(Constant *OnVal, BasicBlock *Dest);
+ void addCase(ConstantInt *OnVal, BasicBlock *Dest);
/// removeCase - This method removes the specified successor from the switch
/// instruction. Note that this cannot be used to remove the default
@@ -1130,15 +1131,15 @@ public:
// getSuccessorValue - Return the value associated with the specified
// successor.
- inline Constant *getSuccessorValue(unsigned idx) const {
+ inline ConstantInt *getSuccessorValue(unsigned idx) const {
assert(idx < getNumSuccessors() && "Successor # out of range!");
- return cast<Constant>(getOperand(idx*2));
+ return (ConstantInt*)getOperand(idx*2);
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const SwitchInst *) { return true; }
static inline bool classof(const Instruction *I) {
- return (I->getOpcode() == Instruction::Switch);
+ return I->getOpcode() == Instruction::Switch;
}
static inline bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));