r373022 - Always rebuild a DeclRefExpr if its FoundDecl would change.

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 26 15:28:33 PDT 2019


Author: rsmith
Date: Thu Sep 26 15:28:32 2019
New Revision: 373022

URL: http://llvm.org/viewvc/llvm-project?rev=373022&view=rev
Log:
Always rebuild a DeclRefExpr if its FoundDecl would change.

Fixes a regression introduced by r369999.

Added:
    cfe/trunk/test/SemaTemplate/using-decl.cpp
Modified:
    cfe/trunk/lib/Sema/TreeTransform.h

Modified: cfe/trunk/lib/Sema/TreeTransform.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TreeTransform.h?rev=373022&r1=373021&r2=373022&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/TreeTransform.h (original)
+++ cfe/trunk/lib/Sema/TreeTransform.h Thu Sep 26 15:28:32 2019
@@ -9219,6 +9219,7 @@ TreeTransform<Derived>::TransformDeclRef
   if (!getDerived().AlwaysRebuild() &&
       QualifierLoc == E->getQualifierLoc() &&
       ND == E->getDecl() &&
+      Found == E->getFoundDecl() &&
       NameInfo.getName() == E->getDecl()->getDeclName() &&
       !E->hasExplicitTemplateArgs()) {
 

Added: cfe/trunk/test/SemaTemplate/using-decl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/using-decl.cpp?rev=373022&view=auto
==============================================================================
--- cfe/trunk/test/SemaTemplate/using-decl.cpp (added)
+++ cfe/trunk/test/SemaTemplate/using-decl.cpp Thu Sep 26 15:28:32 2019
@@ -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>(); }
+}




More information about the cfe-commits mailing list