Displaying 4 results from an estimated 4 matches for "ditypedarray".
Did you mean:
ditypearray
2014 Jul 21
4
[LLVMdev] LTO type uniquing: ODR assertion failure
...; DIDescirptors, we can make DIArray an array of DIDescriptorRef.
>> > I don't think it is a good idea to add DIDescriptorRef (it makes our
>> > types
>> > loose) and am not sure about the 2nd condition.
>> >
>> > So I proposed to add DITypeArray (or DITypedArray<DITypeRef> as David
>> > suggested, where all elements are DITypeRef),
>> > DICompositeType::getTypeArray() will return DITypeArray and
>> > DITypeArray::getElement(unsigned) will return DITypeRef.
>> >
>> > This is actually more complicated than I...
2014 Jul 21
2
[LLVMdev] LTO type uniquing: ODR assertion failure
...and all elements currently inside DIArray are
> DIDescirptors, we can make DIArray an array of DIDescriptorRef.
> I don't think it is a good idea to add DIDescriptorRef (it makes our types
> loose) and am not sure about the 2nd condition.
>
> So I proposed to add DITypeArray (or DITypedArray<DITypeRef> as David
> suggested, where all elements are DITypeRef),
> DICompositeType::getTypeArray() will return DITypeArray and
> DITypeArray::getElement(unsigned) will return DITypeRef.
>
> This is actually more complicated than I thought, not all DICompositeType's
>...
2014 Jul 21
2
[LLVMdev] LTO type uniquing: ODR assertion failure
...;d
need to make DITypeRef's ctor public so it could be used here. Not
suggesting that's ideal, though.
2) If we're going to fix DIArray apparent type safety (it's not safe -
just convenient), perhaps we could just template it? (to avoid churn,
we could leave DIArray as a typedef of DITypedArray<DIDescriptor> for
example, and then have DITypedArray<DITypeRef> which is your
DITypeArray (again, provided via typedef)). It's so small though, that
I'm not too fussed if we write it out again as you've proposed.
- David
>
> Thanks,
> Manman
>
>>
>>...
2014 Jul 14
3
[LLVMdev] LTO type uniquing: ODR assertion failure
We still have access to types via MDNodes directly and the assertion that
assumes all accesses to DITypes are accessing the resolved DIType will fire
i.e assert(Ty == resolve(Ty.getRef()))
One example is the access to DIType via DIArray in SubroutineType. If all
elements in the type array are DITypes we can create a DITypeArray and use
that for SubroutineType's type array instead. But we