dblaikie added a comment.

In D141826#4072609 <https://reviews.llvm.org/D141826#4072609>, @Michael137 
wrote:

> In D141826#4059088 <https://reviews.llvm.org/D141826#4059088>, @erichkeane 
> wrote:
>
>> In D141826#4059073 <https://reviews.llvm.org/D141826#4059073>, @Michael137 
>> wrote:
>>
>>> In D141826#4058866 <https://reviews.llvm.org/D141826#4058866>, @erichkeane 
>>> wrote:
>>>
>>>> This seems innocuous enough/easy enough to use.  I'd like a comment on the 
>>>> functions at least and types in TemplateBase.h to specify that this is for 
>>>> printing-policy only?  Alternatively (and perhaps MUCH more appreciated) 
>>>> would be to make sure we mark the defaulted during AST generation as well.
>>>
>>> I'll have a look at doing that
>>>
>>> Are you suggesting we do the substitution check that the TypePrinter 
>>> currently does when constructing the specialisation decls? So the 
>>> TypePrinter simply needs to check the `TemplateArgument::getIsDefaulted`? I 
>>> like the sound of that.
>>>
>>> Unfortunately we'd still need the `setIsDefaulted` because of the DWARF 
>>> limitation in LLDB
>>
>> Yes, thats my thought.  Of course we'd still need the 'setIsDefaulted', but 
>> at least it would be something that coudl be generally useful.
>
> So I've been having a go at this. The latest diff sets the bit when creating 
> `ClassTemplateSpecializationDecl`s. However, we end up having to copy the 
> `ArrayRef<TemplateArgument>` twice (because of the current assumptions that a 
> `TemplateArgumentList` is immutable, which seems like a nice property to 
> maintain). That seems iffy.
>
> I also had to add the flag to the `TemplateArgument` tablegen description to 
> support deserialized `ClassTemplateSpecializationDecl`.
>
> I've been playing around with setting the flag at construction of 
> `TemplateArgument`s instead. Not sure how much cleaner that's going to be 
> because so far I've not found a good single point of entry (been looking at 
> CheckTemplateArgumentList 
> <https://github.com/llvm/llvm-project/blob/main/clang/lib/Sema/SemaTemplate.cpp#L6004-L6116>
>  in `SemaTemplate`)

Yep, I think that'd be the idea, if there's somewhere to do it - rather than 
updating/copying it on every specialization.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D141826

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

Reply via email to