<div>Hello again,
                </div><div><br></div><div>So, after some changes, I inserted intentionally values with use in other modules, and I get the following error:</div><div><br></div><div><p style="margin: 0.0px 0.0px 0.0px 12.0px; text-indent: -12.0px; font: 11.0px Menlo">While deleting: i1 %</p>
<p style="margin: 0.0px 0.0px 0.0px 12.0px; text-indent: -12.0px; font: 11.0px Menlo">Use still stuck around after Def is destroyed:  %c = phi i1 [ false, <badref> ]</p><p style="margin: 0.0px 0.0px 0.0px 12.0px; text-indent: -12.0px; font: 11.0px Menlo">[...]</p><p style="margin: 0.0px 0.0px 0.0px 12.0px; text-indent: -12.0px; font: 11.0px Menlo"><span>Assertion failed: (use_empty() && "Uses remain when a value is destroyed!"), function ~Value, file /Developer/llvm/lib/VMCore/Value.cpp, line 75.</span></p><p style="margin: 0.0px 0.0px 0.0px 12.0px; text-indent: -12.0px; font: 11.0px Menlo"><span>[...]</span></p><p style="margin: 0.0px 0.0px 0.0px 12.0px; text-indent: -12.0px; font: 11.0px Menlo"><br></p></div>
                <div><div>This error occurred in between the return of the initialize() method and the actual return to the derived class method. Any one of you could help me to avoid this behavior?</div><div><br></div><div>Best regards,</div><div><br></div><div>-- </div><div>Cristianno Martins</div><div>PhD Student of Computer Science</div><div>University of Campinas</div><div>cmartins@ic.unicamp.br</div><div><br></div></div>
                 
                <p style="color: #A0A0A8;">On Sunday, 8 de April de 2012 at 13:37, Cristianno Martins wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div>
                <div>
                    Hello guys,
                </div><div><br></div><div>So, I'm stucked in a problem involving a Function and a derived class. Well, I was refactoring part of my pass code, and created two classes in this process that are interesting here: class A and class B. Class B inherits from class A; on the other hand, class A has some pure virtual methods (already implemented in class B), and a Module, that holds only one auxiliary function (a working copy of the function being processed by the pass with some adjustments).</div><div><br></div><div>Ok, the derived class, B, calls a method inherited from A (let's say, initialize()), that uses the implementation in B of the virtual methods in A. So far, so good. This initialize method basically builds my module and initializes its function. Here comes the strange part: if I dump the function in the very end of initialize(), I can access without problems the basic blocks on it. But once I'd returned to the B method that called initialize(), if I dump the function (which is a protected attribute in A, btw), I get a message like that:</div><div><br></div><div><span>Assertion failed: (!empty() && "Called front() on empty list!"), function front, file /Developer/llvm/include/llvm/ADT/ilist.h, line 388.</span></div><div><span>[...]</span></div><div><br></div>
                <div><div>Is there some tricky way to do this that I'm not seeing?</div><div><br></div><div>Thanks in advance,</div><div><br></div><div>-- </div><div>Cristianno Martins</div><div>PhD Student of Computer Science</div><div>University of Campinas</div><div><a href="mailto:cmartins@ic.unicamp.br">cmartins@ic.unicamp.br</a></div></div>
            </div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>