summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Sema/TreeTransform.h1
-rw-r--r--clang/test/SemaTemplate/using-decl.cpp16
2 files changed, 17 insertions, 0 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 9218f9eeb5a..84e38c6d78f 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -9219,6 +9219,7 @@ TreeTransform<Derived>::TransformDeclRefExpr(DeclRefExpr *E) {
if (!getDerived().AlwaysRebuild() &&
QualifierLoc == E->getQualifierLoc() &&
ND == E->getDecl() &&
+ Found == E->getFoundDecl() &&
NameInfo.getName() == E->getDecl()->getDeclName() &&
!E->hasExplicitTemplateArgs()) {
diff --git a/clang/test/SemaTemplate/using-decl.cpp b/clang/test/SemaTemplate/using-decl.cpp
new file mode 100644
index 00000000000..1ef2a2dfaa0
--- /dev/null
+++ b/clang/test/SemaTemplate/using-decl.cpp
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 -std=c++2a -verify %s
+// expected-no-diagnostics
+
+namespace UsingInGenericLambda {
+ namespace a {
+ enum { b };
+ }
+ template<typename> void c() {
+ auto d = [](auto) {
+ using a::b;
+ (void)b;
+ };
+ d(0);
+ }
+ void e() { c<int>(); }
+}
OpenPOWER on IntegriCloud