Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!
[oota-llvm.git] / include / llvm / GlobalValue.h
index fe43ed4f69f80dee4fd3895823a18b8cbcd2f35e..40e3a5ace58f64269f21cfdbc8176a114c202ff1 100644 (file)
@@ -63,11 +63,12 @@ protected:
   unsigned Visibility : 2;    // The visibility style of this global
   unsigned Alignment : 16;    // Alignment of this symbol, must be power of two
   std::string Section;        // Section to emit this into, empty mean default
-public:
-  ~GlobalValue() {
-    removeDeadConstantUsers();   // remove any dead constants using this.
-  }
 
+  static void destroyThis(GlobalValue*v) {
+    v->removeDeadConstantUsers();   // remove any dead constants using this.
+    Constant::destroyThis(v);
+  }
+public:
   unsigned getAlignment() const { return Alignment; }
   void setAlignment(unsigned Align) {
     assert((Align & (Align-1)) == 0 && "Alignment is not a power of 2!");