[LLVMdev] Remove function from module

Dmitry N. Mikushin maemarcus at gmail.com
Sat Apr 21 13:30:23 PDT 2012


Could you reproduce this assertion with my test program?

22 апреля 2012 г. 0:09 пользователь Михаил <neonomaly.x at gmail.com> написал:
> 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
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list