[LLVMdev] Assertion: replaceAllUses of value with new value of different type! being thrown all of a sudden

Christian Schafmeister chris.schaf at verizon.net
Mon Jan 19 13:13:56 PST 2015


On Jan 19, 2015, at 3:49 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:

>> 
>> On 2015-Jan-19, at 12:38, Frédéric Riss <friss at apple.com> wrote:
>> 
>> 
>>> On Jan 19, 2015, at 12:04 PM, Christian Schafmeister <chris.schaf at verizon.net> wrote:
>>> 
>>> 
>>> I forgot to mention this in my initial email.
>>> 
>>> The build of LLVM that I was using was commit a0d5d7aed8e177cea381b3d054d80c212ece9f2c
>>> The date on the commit is: Date:   Fri Sep 26 12:34:06 2014
>>> 
>>> Also:
>>> Today I grabbed the ToT llvm/clang/clang-extra-tools  and I’m working on getting my code to be compatible with it.
>>> 
>>> I can switch back and forth between the current ToT llvm and the old one.
>> 
>> Hmmm, I didn’t look closely enough and I thought you were hitting an assertions I added a few weeks after that commit in the Metadata RAUW method. But it is the equivalent assertion in Value::RAUW that you are hitting and that has been there forever. Looking at your exact revision, the assertion seems to trigger while executing:
>> 
>> DIType(TempEnumTypes).replaceAllUsesWith(Enums);
>> 
>> in DIBuilder::finalize(). Can you check if TempEnumTypes is null at this point? If that is the issue (which I’m not sure), then you need to call DIBuilder::createCompileUnit() at some point.
>> 
>> Fred
> 
> I had a thought, too: are you using two different `LLVMContext`s?  That
> would cause the `metadata` type to compare unequal.


No, I only declare an LLVMContext once at the start of the program - but I’ll check to see if I can guarantee that I only have one LLVMContext.

Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150119/63d555c0/attachment.html>


More information about the llvm-dev mailing list