summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-12-08 04:37:52 +0000
committerChris Lattner <sabre@nondot.org>2007-12-08 04:37:52 +0000
commitedfd10de873a424a8516a6dbf5feb8168efc462d (patch)
treef53f76323a85491a6eb1b76c8329443bd934f098 /include
parentb48519cbadbb2b91a811f6fc189f40bd67c007f4 (diff)
downloadllvm-edfd10de873a424a8516a6dbf5feb8168efc462d.tar.gz
llvm-edfd10de873a424a8516a6dbf5feb8168efc462d.tar.bz2
llvm-edfd10de873a424a8516a6dbf5feb8168efc462d.tar.xz
Implement correct isa<UnaryInstruction>, problem reported by "ST".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44697 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/InstrTypes.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/InstrTypes.h b/include/llvm/InstrTypes.h
index 22ad342d7f..a6a8fff40c 100644
--- a/include/llvm/InstrTypes.h
+++ b/include/llvm/InstrTypes.h
@@ -108,6 +108,20 @@ public:
Op = Val;
}
unsigned getNumOperands() const { return 1; }
+
+ // Methods for support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const UnaryInstruction *) { return true; }
+ static inline bool classof(const Instruction *I) {
+ return I->getOpcode() == Instruction::Malloc ||
+ I->getOpcode() == Instruction::Alloca ||
+ I->getOpcode() == Instruction::Free ||
+ I->getOpcode() == Instruction::Load ||
+ I->getOpcode() == Instruction::VAArg ||
+ (I->getOpcode() >= CastOpsBegin && I->getOpcode() < CastOpsEnd);
+ }
+ static inline bool classof(const Value *V) {
+ return isa<Instruction>(V) && classof(cast<Instruction>(V));
+ }
};
//===----------------------------------------------------------------------===//