[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