Skip to content

Commit 72cf16f

Browse files
committed
[clang] fix DependentNameType -> UnresolvedUsingType transforms
This fixes a regression reported here #147835 (comment) Since this regression was never released, there are no release notes.
1 parent 09f5b9a commit 72cf16f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

clang/lib/Sema/TreeTransform.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7668,8 +7668,11 @@ QualType TreeTransform<Derived>::TransformDependentNameType(
76687668
} else if (isa<TypedefType>(Result)) {
76697669
TLB.push<TypedefTypeLoc>(Result).set(TL.getElaboratedKeywordLoc(),
76707670
QualifierLoc, TL.getNameLoc());
7671+
} else if (isa<UnresolvedUsingType>(Result)) {
7672+
auto NewTL = TLB.push<UnresolvedUsingTypeLoc>(Result);
7673+
NewTL.set(TL.getElaboratedKeywordLoc(), QualifierLoc, TL.getNameLoc());
76717674
} else {
7672-
DependentNameTypeLoc NewTL = TLB.push<DependentNameTypeLoc>(Result);
7675+
auto NewTL = TLB.push<DependentNameTypeLoc>(Result);
76737676
NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
76747677
NewTL.setQualifierLoc(QualifierLoc);
76757678
NewTL.setNameLoc(TL.getNameLoc());

clang/test/SemaCXX/using-decl-templates.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,3 +153,11 @@ T foo(T t) { // OK
153153
}
154154
} // namespace sss
155155
} // namespace func_templ
156+
157+
namespace DependentName {
158+
template <typename T> struct S {
159+
using typename T::Ty;
160+
static Ty Val;
161+
};
162+
template <typename T> typename S<T>::Ty S<T>::Val;
163+
} // DependentName

0 commit comments

Comments
 (0)