From 72cf16f31dc2881cc2e54f08b250c17f7c1ad0a7 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Fri, 15 Aug 2025 16:41:39 -0300 Subject: [PATCH] [clang] fix DependentNameType -> UnresolvedUsingType transforms This fixes a regression reported here https://github.com/llvm/llvm-project/pull/147835#issuecomment-3192237099 Since this regression was never released, there are no release notes. --- clang/lib/Sema/TreeTransform.h | 5 ++++- clang/test/SemaCXX/using-decl-templates.cpp | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 1863e7f97e3f1..055d3cd1a8609 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -7668,8 +7668,11 @@ QualType TreeTransform::TransformDependentNameType( } else if (isa(Result)) { TLB.push(Result).set(TL.getElaboratedKeywordLoc(), QualifierLoc, TL.getNameLoc()); + } else if (isa(Result)) { + auto NewTL = TLB.push(Result); + NewTL.set(TL.getElaboratedKeywordLoc(), QualifierLoc, TL.getNameLoc()); } else { - DependentNameTypeLoc NewTL = TLB.push(Result); + auto NewTL = TLB.push(Result); NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc()); NewTL.setQualifierLoc(QualifierLoc); NewTL.setNameLoc(TL.getNameLoc()); diff --git a/clang/test/SemaCXX/using-decl-templates.cpp b/clang/test/SemaCXX/using-decl-templates.cpp index c96c4879cb68c..58b30595b148c 100644 --- a/clang/test/SemaCXX/using-decl-templates.cpp +++ b/clang/test/SemaCXX/using-decl-templates.cpp @@ -153,3 +153,11 @@ T foo(T t) { // OK } } // namespace sss } // namespace func_templ + +namespace DependentName { + template struct S { + using typename T::Ty; + static Ty Val; + }; + template typename S::Ty S::Val; +} // DependentName