Add static functions to clear singleton maps. Patch contributed by
authorChris Lattner <sabre@nondot.org>
Fri, 19 Nov 2004 16:39:04 +0000 (16:39 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 19 Nov 2004 16:39:04 +0000 (16:39 +0000)
Morten Ofstad!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17994 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Constant.h
include/llvm/Type.h

index 789fe7028180548a9b748f0bd8248cefc999c31a..0d098a60745b09d04ac5430ec0c67e557b244c53 100644 (file)
@@ -92,6 +92,11 @@ public:
            "implemented for all constants that have operands!");
     assert(0 && "Constants that do not have operands cannot be using 'From'!");
   }
+
+  /// clearAllValueMaps - This method frees all internal memory used by the
+  /// constant subsystem, which can be used in environments where this memory
+  /// is otherwise reported as a leak.
+  static void clearAllValueMaps();
 };
 
 } // End llvm namespace
index 9602fd5a57abf2791edc585692823206812912bd..18b8adb0cee0d8ad50819bec7cec55eb8d11ea5a 100644 (file)
@@ -288,7 +288,7 @@ public:
   }
   
   void dropRef() const {
-    assert(isAbstract() && "Cannot drop a refernce to a non-abstract type!");
+    assert(isAbstract() && "Cannot drop a reference to a non-abstract type!");
     assert(RefCount && "No objects are currently referencing this object!");
 
     // If this is the last PATypeHolder using this object, and there are no
@@ -296,6 +296,12 @@ public:
     if (--RefCount == 0)
       RefCountIsZero();
   }
+
+  /// clearAllTypeMaps - This method frees all internal memory used by the
+  /// type subsystem, which can be used in environments where this memory is
+  /// otherwise reported as a leak.
+  static void clearAllTypeMaps();
+
 private:
   /// isSizedDerivedType - Derived types like structures and arrays are sized
   /// iff all of the members of the type are sized as well.  Since asking for