Author: Younan Zhang
Date: 2025-05-20T09:55:50+08:00
New Revision: 2cea17b0ecf4d0938d19765752f4503e148af499

URL: 
https://github.com/llvm/llvm-project/commit/2cea17b0ecf4d0938d19765752f4503e148af499
DIFF: 
https://github.com/llvm/llvm-project/commit/2cea17b0ecf4d0938d19765752f4503e148af499.diff

LOG: Revert "[Clang] Profile singly-resolved UnresolvedLookupExpr with the 
declara…"

This reverts commit 858649ad0e2bd4c24d4e577094707a53acfe6ade.

Added: 
    

Modified: 
    clang/docs/ReleaseNotes.rst
    clang/lib/AST/StmtProfile.cpp
    clang/test/SemaTemplate/concepts-out-of-line-def.cpp

Removed: 
    


################################################################################
diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index ac9baf229b489..d756f7a3a3f70 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -741,7 +741,6 @@ Bug Fixes to C++ Support
 - Fixed the handling of pack indexing types in the constraints of a member 
function redeclaration. (#GH138255)
 - Clang now correctly parses arbitrary order of ``[[]]``, ``__attribute__`` 
and ``alignas`` attributes for declarations (#GH133107)
 - Fixed a crash when forming an invalid function type in a dependent context. 
(#GH138657) (#GH115725) (#GH68852)
-- Fixed a function declaration mismatch that caused inconsistencies between 
concepts and variable template declarations. (#GH139476)
 - Clang no longer segfaults when there is a configuration mismatch between 
modules and their users (http://crbug.com/400353616).
 - Fix an incorrect deduction when calling an explicit object member function 
template through an overload set address.
 - Fixed bug in constant evaluation that would allow using the value of a

diff  --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp
index 19db338f760ba..f7d1655f67ed1 100644
--- a/clang/lib/AST/StmtProfile.cpp
+++ b/clang/lib/AST/StmtProfile.cpp
@@ -2189,10 +2189,7 @@ StmtProfiler::VisitCXXPseudoDestructorExpr(const 
CXXPseudoDestructorExpr *S) {
 
 void StmtProfiler::VisitOverloadExpr(const OverloadExpr *S) {
   VisitExpr(S);
-  if (S->getNumDecls() == 1)
-    VisitDecl(*S->decls_begin());
-  else
-    VisitNestedNameSpecifier(S->getQualifier());
+  VisitNestedNameSpecifier(S->getQualifier());
   VisitName(S->getName(), /*TreatAsDecl*/ true);
   ID.AddBoolean(S->hasExplicitTemplateArgs());
   if (S->hasExplicitTemplateArgs())

diff  --git a/clang/test/SemaTemplate/concepts-out-of-line-def.cpp 
b/clang/test/SemaTemplate/concepts-out-of-line-def.cpp
index bf505dec0ca14..e5d00491d3fb8 100644
--- a/clang/test/SemaTemplate/concepts-out-of-line-def.cpp
+++ b/clang/test/SemaTemplate/concepts-out-of-line-def.cpp
@@ -853,18 +853,3 @@ template <int... Ts>
 requires C<Ts...[0]>
 auto TplClass<int>::buggy() -> void {}
 }
-
-namespace GH139476 {
-
-namespace moo {
-  template <typename T>
-  constexpr bool baa = true;
-
-  template <typename T> requires baa<T>
-  void caw();
-}
-
-template <typename T> requires moo::baa<T>
-void moo::caw() {}
-
-}


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

Reply via email to