[all-commits] [llvm/llvm-project] c5aa87: [clang] fix DependentTemplateSpecializationType tr...

Matheus Izvekov via All-commits all-commits at lists.llvm.org
Wed Apr 9 11:40:50 PDT 2025


  Branch: refs/heads/users/mizvekov/fix-nns-dependency
  Home:   https://github.com/llvm/llvm-project
  Commit: c5aa8704594a3e950cb357d4b7a00130547cdacb
      https://github.com/llvm/llvm-project/commit/c5aa8704594a3e950cb357d4b7a00130547cdacb
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2025-04-07 (Mon, 07 Apr 2025)

  Changed paths:
    M clang/lib/Sema/TreeTransform.h
    M clang/test/SemaTemplate/dependent-names.cpp

  Log Message:
  -----------
  [clang] fix DependentTemplateSpecializationType transform

This changes the transform for DTST so rebuilds the node if any of the
template arguments changed.

This fixes a regression reported here: https://github.com/llvm/llvm-project/pull/133610#issuecomment-2784576267
which was introduced by https://github.com/llvm/llvm-project/pull/133610

There are no release notes since the regression was never released.


  Commit: 1ce1ac6e5043213151a39cdcbf62f9691e316217
      https://github.com/llvm/llvm-project/commit/1ce1ac6e5043213151a39cdcbf62f9691e316217
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2025-04-09 (Wed, 09 Apr 2025)

  Changed paths:
    M clang/lib/AST/NestedNameSpecifier.cpp
    M clang/lib/Sema/SemaCXXScopeSpec.cpp
    M clang/test/SemaTemplate/dependent-names.cpp

  Log Message:
  -----------
  [clang] fix NestedNameSpecifier dependency calculation

A NestedNameSpecifier of TypeSpec kind can be non-dependent even if its
prefix is dependent, when for example the prefix is an injected class type
but the type itself is a simple alias to a non-dependent type.

This issue was a bit hard to observe because if its an alias to
a class type, then we (for some unknown reason) ignored that the
NNS was dependent in the first place, which wouldn't happen
with an enum type.

This could have been a workaround for previous dependency bugs,
and is not relevant anymore for any of the test cases in the
tree, so this patch also removes that.

The other kinds of dependencies are still relevant.
If the prefix contains an unexpanded pack, then this NNS is still
unexpanded, and likewise for errors.

This fixes a regression reported here: https://github.com/llvm/llvm-project/pull/133610#issuecomment-2787909829
which was introduced by https://github.com/llvm/llvm-project/pull/133610

There are no release notes since the regression was never released.


Compare: https://github.com/llvm/llvm-project/compare/c5aa8704594a%5E...1ce1ac6e5043

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list