[clang] [Clang][Sema] qualifier should be transformed (PR #94725)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 12 21:47:53 PDT 2024


mizvekov wrote:

I think this is missing one detail: We now have the same qualifier in two places: The elaborated type node attached to the TST, and in the name of the TST itself.

While this is not ideal situation, I think it makes sense to just drop the TemplateName qualifier in the transform for now, so we don't keep transforming it twice, until we make the situation consistent again. Right now the NNS in the TST name is not printed, its only purpose there is to carry the template keyword information, which shouldn't be affected here.

The fact that this change somehow affects program semantics is still unexpected and unexplained.

As I said on the other PR, after we have built a TST, per current AST design, we shouldn't need the nested name specifier anymore beyond type sugar.

So either we built this TST too early, as in it should have stayed as a DependentTemplateSpecializationType longer or some such, or there is something that needs to be rectified in the AST design, but I can't imagine what.

If I had to take a guess, there is something wrong in the dependency computation for the NNS. Have you checked that?

https://github.com/llvm/llvm-project/pull/94725


More information about the cfe-commits mailing list