aaron.ballman added a comment.

In D111199#3097692 <https://reviews.llvm.org/D111199#3097692>, @dblaikie wrote:

> In D111199#3096124 <https://reviews.llvm.org/D111199#3096124>, @aaron.ballman 
> wrote:
>
>> In D111199#3095623 <https://reviews.llvm.org/D111199#3095623>, 
>> @yonghong-song wrote:
>>
>>>> Ah, yeah, I see what you mean - that does seem sort of unfortunate. Is it 
>>>> possible these attributes could only appear on typedefs and they'd be more 
>>>> readily carried through that without needing extra typeloc tracking? 
>>>> (sorry for not having read back through the rest of the review - which 
>>>> may've started there and ended up here as a more general form of the 
>>>> attribute?)
>>>
>>> For the question, "is it possible these attributes could only appear on 
>>> typedefs?" The answer is "not really possible". We are targeting existing 
>>> linux kernel where existing type attributes (__user, __rcu, ...) have been 
>>> used in places other than typedef quite extensively (e.g., function 
>>> argument type, function return type, field type, etc.).
>>>
>>> In one of my earlier prototypes, I put the tag string itself in 
>>> AttributedType and with this we can avoid TypeLoc, but I understand this is 
>>> not conventional usage and that is why we do through TypeLoc mechanism. 
>>> @aaron.ballman can further comment on this.
>>
>> FWIW, I made that request because AttributedTypeLoc stores the Attr * for 
>> the attributed type, so we can get the attribute argument information from 
>> that rather than having to duplicate it within a new TypeLoc object.
>
> So could the debug info code be done with AttributedType (I guess currently 
> CGDebugInfo skips over those - but we could not skip over them and check if 
> it's one of these attributes, otherwise skip) rather than passing around the 
> extra TypeLoc?

That's my hope, but I wasn't certain if there were type modifications happening 
where we need to calculate a `TypeLoc` that's different from what we would get 
out of the type itself. I would expect that doesn't happen during CodeGen 
(seems awfully late to be changing types), but wasn't 100% sure.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111199/new/

https://reviews.llvm.org/D111199

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to