diff options
-rw-r--r-- | lib/VMCore/Globals.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/lib/VMCore/Globals.cpp b/lib/VMCore/Globals.cpp index e35d801..ea87701 100644 --- a/lib/VMCore/Globals.cpp +++ b/lib/VMCore/Globals.cpp @@ -50,25 +50,15 @@ static bool removeDeadConstantUsers(Constant* C) { /// This function returns true if the global value is now dead. If all /// users of this global are not dead, this method may return false and /// leave some of them around. -bool GlobalValue::removeDeadConstantUsers() { +void GlobalValue::removeDeadConstantUsers() { while(!use_empty()) { if (Constant* User = dyn_cast<Constant>(use_back())) { if (!::removeDeadConstantUsers(User)) - return false; // Constant wasn't dead + return; // Constant wasn't dead } else { - return false; // Non-constant usage; + return; // Non-constant usage; } } - return true; -} - -/// This virtual destructor is responsible for deleting any transitively dead -/// Constants that are using the GlobalValue. -GlobalValue::~GlobalValue() { - // Its an error to attempt destruction with non-constant uses remaining. - bool okay_to_destruct = removeDeadConstantUsers(); - assert(okay_to_destruct && - "Can't destroy GlobalValue with non-constant uses."); } /// Override destroyConstant to make sure it doesn't get called on |