diff options
author | Gordon Henriksen <gordonhenriksen@mac.com> | 2007-12-10 02:14:30 +0000 |
---|---|---|
committer | Gordon Henriksen <gordonhenriksen@mac.com> | 2007-12-10 02:14:30 +0000 |
commit | afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5 (patch) | |
tree | 90d674eca01d05d52bdd394518dd2bc76db5c154 /include/llvm/BasicBlock.h | |
parent | 65b211807d524d50d8bb3429a4c5049fb2d3d3ac (diff) | |
download | llvm-afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5.tar.gz llvm-afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5.tar.bz2 llvm-afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5.tar.xz |
Reverting dtor devirtualization patch.
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44760 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/BasicBlock.h')
-rw-r--r-- | include/llvm/BasicBlock.h | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/include/llvm/BasicBlock.h b/include/llvm/BasicBlock.h index d5a1fe1c33..cd38b4280c 100644 --- a/include/llvm/BasicBlock.h +++ b/include/llvm/BasicBlock.h @@ -65,9 +65,6 @@ private : BasicBlock(const BasicBlock &); // Do not implement void operator=(const BasicBlock &); // Do not implement -protected: - static void destroyThis(BasicBlock*); - friend class Value; public: /// Instruction iterators... typedef InstListType::iterator iterator; @@ -79,6 +76,7 @@ public: /// explicit BasicBlock(const std::string &Name = "", Function *Parent = 0, BasicBlock *InsertBefore = 0); + ~BasicBlock(); /// getParent - Return the enclosing method, or null if none /// @@ -208,33 +206,6 @@ private: const BasicBlock *getPrev() const { return Prev; } }; -/// DummyInst - An instance of this class is used to mark the end of the -/// instruction list. This is not a real instruction. -class DummyInst : public Instruction { -protected: - static void destroyThis(DummyInst* v) { - Instruction::destroyThis(v); - } - friend class Value; -public: - DummyInst(); - - Instruction *clone() const { - assert(0 && "Cannot clone EOL");abort(); - return 0; - } - const char *getOpcodeName() const { return "*end-of-list-inst*"; } - - // Methods for support type inquiry through isa, cast, and dyn_cast... - static inline bool classof(const DummyInst *) { return true; } - static inline bool classof(const Instruction *I) { - return I->getOpcode() == OtherOpsEnd; - } - static inline bool classof(const Value *V) { - return isa<Instruction>(V) && classof(cast<Instruction>(V)); - } -}; - inline int ilist_traits<Instruction>::getListOffset() { return BasicBlock::getInstListOffset(); |