vgvassilev wrote:

> > > I gave it a quick try, and we would still end up with the same result in 
> > > our codebase. But, generally, this would not probably be feasible for us 
> > > as a solution.
> > 
> > 
> > do you have an idea why? Can you show the diff of the changes you made? Is 
> > the void specialization not explicit?
> 
> I did a quick test with this:
> 
> ```
> diff --git a/clang/lib/AST/QualTypeNames.cpp b/clang/lib/AST/QualTypeNames.cpp
> index 26aaa96a1dc6..8b882eda83bb 100644
> --- a/clang/lib/AST/QualTypeNames.cpp
> +++ b/clang/lib/AST/QualTypeNames.cpp
> @@ -287,8 +287,13 @@ static NestedNameSpecifier 
> *createNestedNameSpecifierForScopeOf(
>          //
>          // Make the situation is 'useable' but looking a bit odd by
>          // picking a random instance as the declaring context.
> -        if (ClassTempl->spec_begin() != ClassTempl->spec_end()) {
> -          Decl = *(ClassTempl->spec_begin());
> +        auto specialization_iterator = std::find_if(
> +            ClassTempl->spec_begin(), ClassTempl->spec_end(), [](auto a) {
> +              return !a->isExplicitInstantiationOrSpecialization();
> +            });
> +
> +        if (specialization_iterator != ClassTempl->spec_end()) {
> +          Decl = *specialization_iterator;
>            Outer = dyn_cast<NamedDecl>(Decl);
>            OuterNS = dyn_cast<NamespaceDecl>(Decl);
>          }
> ```
> 
> Do please let me know if this is incorrect or if I misunderstood your 
> proposal.
> 
> We do have explicit references to the void specialization in the codebase so 
> it would explain the previous choice. But I'm not aware of why it would be 
> chosen as a non-explicit one too.
> 
> I can try to debug that on Monday if that can be useful. Albeit it might take 
> some time.

You probably need 
[isExplicitSpecialization](https://clang.llvm.org/doxygen/classclang_1_1ClassTemplateSpecializationDecl.html#acd75ba25d34249d2e21ebbecbb2ef70e)()

https://github.com/llvm/llvm-project/pull/67566
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to