Adjust to changes in ilist
authorChris Lattner <sabre@nondot.org>
Sat, 29 Jan 2005 18:41:00 +0000 (18:41 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 29 Jan 2005 18:41:00 +0000 (18:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19922 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/BasicBlock.h
include/llvm/Function.h
include/llvm/Module.h

index ed9794207a377081f128fc567bee64b5a9c0b10a..dc3ef1bcccb34e2e36aa70c933de35b4dae6bc3b 100644 (file)
@@ -40,8 +40,9 @@ template <class Ptr, class USE_iterator> class PredIterator;
 
 template<> struct ilist_traits<Instruction>
   : public SymbolTableListTraits<Instruction, BasicBlock, Function> {
-  // createNode is used to create a node that marks the end of the list...
-  static Instruction *createNode();
+  // createSentinal is used to create a node that marks the end of the list...
+  static Instruction *createSentinal();
+  static void destroySentinal(Instruction *I) { delete I; }
   static iplist<Instruction> &getList(BasicBlock *BB);
 };
 
index a4545a79ab1404813aa587acacd831c067b347d8..88d7d3457f6b1d348cdd8289eb033268299d3350 100644 (file)
@@ -31,17 +31,18 @@ class FunctionType;
 template<> struct ilist_traits<BasicBlock>
   : public SymbolTableListTraits<BasicBlock, Function, Function> {
 
-  // createNode is used to create a node that marks the end of the list...
-  static BasicBlock *createNode();
-
+  // createSentinal is used to create a node that marks the end of the list...
+  static BasicBlock *createSentinal();
+  static void destroySentinal(BasicBlock *BB) { delete BB; }
   static iplist<BasicBlock> &getList(Function *F);
 };
 
 template<> struct ilist_traits<Argument>
   : public SymbolTableListTraits<Argument, Function, Function> {
 
-  // createNode is used to create a node that marks the end of the list...
-  static Argument *createNode();
+  // createSentinal is used to create a node that marks the end of the list...
+  static Argument *createSentinal();
+  static void destroySentinal(Argument *A) { delete A; }
   static iplist<Argument> &getList(Function *F);
 };
 
index 846b47f057606d337b461e6810dc25bd50ed1f40..c53ee4eb9a35777dd8cb5356c25533bb2c378f8a 100644 (file)
@@ -32,14 +32,16 @@ class SymbolTable;
 
 template<> struct ilist_traits<Function>
   : public SymbolTableListTraits<Function, Module, Module> {
-  // createNode is used to create a node that marks the end of the list...
-  static Function *createNode();
+  // createSentinal is used to create a node that marks the end of the list.
+  static Function *createSentinal();
+  static void destroySentinal(Function *F) { delete F; }
   static iplist<Function> &getList(Module *M);
 };
 template<> struct ilist_traits<GlobalVariable>
   : public SymbolTableListTraits<GlobalVariable, Module, Module> {
-  // createNode is used to create a node that marks the end of the list...
-  static GlobalVariable *createNode();
+  // createSentinal is used to create a node that marks the end of the list.
+  static GlobalVariable *createSentinal();
+  static void destroySentinal(GlobalVariable *GV) { delete GV; }
   static iplist<GlobalVariable> &getList(Module *M);
 };