https://github.com/mizvekov updated 
https://github.com/llvm/llvm-project/pull/154418

>From a657d37fdcceab2f0f1848c508cd8e3d9b875528 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov <mizve...@gmail.com>
Date: Tue, 19 Aug 2025 17:07:07 -0300
Subject: [PATCH] [clang] fix runtime check for NNS transform

A SubstTemplateTypeParmPackType is one of the types which may appear
in a NestedNameSpecifier, so add it to the list of expected types in 
TreeTransform.

This fixes a regression introduced in #147835, which has never been released, so
there are no release notes.

Fixes #154270
---
 clang/lib/Sema/TreeTransform.h                    |  1 +
 .../SemaTemplate/nested-name-spec-template.cpp    | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 51f58e35a1ef4..bd37025911486 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -5417,6 +5417,7 @@ QualType 
TreeTransform<Derived>::TransformTypeInObjectScope(
   case TypeLoc::Typedef:
   case TypeLoc::TemplateSpecialization:
   case TypeLoc::SubstTemplateTypeParm:
+  case TypeLoc::SubstTemplateTypeParmPack:
   case TypeLoc::PackIndexing:
   case TypeLoc::Enum:
   case TypeLoc::Record:
diff --git a/clang/test/SemaTemplate/nested-name-spec-template.cpp 
b/clang/test/SemaTemplate/nested-name-spec-template.cpp
index e6cbe3812da52..c99e1eed456cc 100644
--- a/clang/test/SemaTemplate/nested-name-spec-template.cpp
+++ b/clang/test/SemaTemplate/nested-name-spec-template.cpp
@@ -167,3 +167,18 @@ namespace unresolved_using {
   };
   template struct C<int>;
 } // namespace unresolved_using
+
+#if __cplusplus >= 201703L
+namespace SubstTemplateTypeParmPackType {
+  template <int...> struct A {};
+
+  template <class... Ts> void f() {
+    []<int ... Is>(A<Is...>) { (Ts::g(Is) && ...); }(A<0>{});
+    // expected-warning@-1 {{explicit template parameter list for lambdas is a 
C++20 extension}}
+  };
+
+  struct B { static void g(int); };
+
+  template void f<B>();
+} // namespace SubstTemplateTypeParmPackType
+#endif

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

Reply via email to