[LLVMdev] Remove function from module

Михаил neonomaly.x at gmail.com
Sat Apr 21 13:09:15 PDT 2012


Thanks, but I replaceAllUsesWith() - works well, but I still get bug in eraseFromParent():

	While deleting: i32 (%class.B*, i32)* %_ZN1B1xEi
	An asserting value handle still pointed to this value!
	UNREACHABLE executed at /Users/neonomaly/LLVM/LLVM/lib/VMCore/Value.cpp:561!


Yours sincerely,
Kadysev Mikhail

21.04.2012, в 23:45, Nick Lewycky написал(а):

> Михаил wrote:
>> How correctly remove function from module?
>> For example:
>> 
>> int f1(int x) {
>> ...
>> a = f2(smth);
>> ...
>> }
>> int f2 (int y) {
>> ...
>> b = f1(smth);
>> ...
>> }
>> 
>> I need delete from module both f1 and f2. They haven't uses in other
>> part of module, but I can't delete them with eraseFromParent, because
>> they are use each other.
> 
> Call X->replaceAllUsesWith(UndefValue::get(X->getType)) before calling X->eraseFromParent().
> 
> Nick


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120422/a1ef5335/attachment.html>


More information about the llvm-dev mailing list