summaryrefslogtreecommitdiff
path: root/include/llvm/BasicBlock.h
diff options
context:
space:
mode:
authorGordon Henriksen <gordonhenriksen@mac.com>2007-12-10 02:14:30 +0000
committerGordon Henriksen <gordonhenriksen@mac.com>2007-12-10 02:14:30 +0000
commitafba8fe662d65b25b4baf46bb26cc18e1f9cc0a5 (patch)
tree90d674eca01d05d52bdd394518dd2bc76db5c154 /include/llvm/BasicBlock.h
parent65b211807d524d50d8bb3429a4c5049fb2d3d3ac (diff)
downloadllvm-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.h31
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();