然后我替换后,出现第二个问题:
While deleting: [13 x i8]* %.encstr0_3064045518
Use still stuck around after Def is destroyed:@.encstr0_3064045518 = private constant [13 x i8] <null operand!>
Assertion failed: (use_empty() && "Uses remain when a value is destroyed!"), function ~Value,
Value::~Value() {
00057 // Notify all ValueHandles (if present) that this value is going away.
00058 if (HasValueHandle)
00059 ValueHandleBase::ValueIsDeleted(this);
00060
00061 #ifndef NDEBUG // Only in -g mode...
00062 // Check to make sure that there are no uses of this value that are still
00063 // around when the value is destroyed. If there are, then we have a dangling
00064 // reference and something is wrong. This code is here to print out what is
00065 // still being referenced. The value in question should be printed as
00066 // a <badref>
00067 //
00068 if (!use_empty()) {
00069 dbgs() << "While deleting: " << *VTy << " %" << getNameStr() << "\n";
00070 for (use_iterator I = use_begin(), E = use_end(); I != E; ++I)
00071 dbgs() << "Use still stuck around after Def is destroyed:"
00072 << **I << "\n";
00073 }
00074 #endif
00075 assert(use_empty() && "Uses remain when a value is destroyed!");
00076
00077 // If this value is named, destroy the name. This should not be in a symtab
00078 // at this point.
00079 if (Name)
00080 Name->Destroy();
00081
00082 // There should be no uses of this object anymore, remove it.
00083 LeakDetector::removeGarbageObject(this);
00084 }
00085
@逆羊羊 第二个问题是否有解决方案?感谢!
While deleting: [13 x i8]* %.encstr0_3064045518
Use still stuck around after Def is destroyed:@.encstr0_3064045518 = private constant [13 x i8] <null operand!>
Assertion failed: (use_empty() && "Uses remain when a value is destroyed!"), function ~Value,