Author: gulfemsavrun
Date: 2026-01-14T13:12:04-08:00
New Revision: 2b838431fd23647c34bfe09becbd0a0d02cdbe8a

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

LOG: Revert "[Clang] Check enable_if attribute in the DC of current function" 
(#176024)

Reverts llvm/llvm-project#175899 as it caused an assertion error.

https://ci.chromium.org/ui/p/fuchsia/builders/global.ci/clang_toolchain.ci.core.x64-debug-tot-build_only/b8692683882729058145/overview

Added: 
    

Modified: 
    clang/docs/ReleaseNotes.rst
    clang/lib/Sema/SemaOverload.cpp
    clang/test/SemaCXX/enable_if.cpp

Removed: 
    


################################################################################
diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index c9d21558c94fa..4139d1d80ed4a 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -120,7 +120,6 @@ Bug Fixes to Compiler Builtins
 
 Bug Fixes to Attribute Support
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-- Fixed a behavioral discrepancy between deleted functions and private members 
when checking the ``enable_if`` attribute. (#GH175895)
 
 Bug Fixes to C++ Support
 ^^^^^^^^^^^^^^^^^^^^^^^^

diff  --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 5592cd2545358..7115b8b7d446a 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -7551,8 +7551,6 @@ EnableIfAttr *Sema::CheckEnableIf(FunctionDecl *Function,
     return nullptr;
 
   SFINAETrap Trap(*this);
-  // Switching the DC to ensure the immediate access control checking.
-  ContextRAII SavedContext(*this, Function->getDeclContext());
   SmallVector<Expr *, 16> ConvertedArgs;
   // FIXME: We should look into making enable_if late-parsed.
   Expr *DiscardedThis;

diff  --git a/clang/test/SemaCXX/enable_if.cpp 
b/clang/test/SemaCXX/enable_if.cpp
index 845ccf00864a1..1c307881e5d4a 100644
--- a/clang/test/SemaCXX/enable_if.cpp
+++ b/clang/test/SemaCXX/enable_if.cpp
@@ -562,41 +562,6 @@ namespace IgnoreUnusedArgSideEffects {
 #endif
 }
 
-namespace GH175895 {
-
-using int32_t = int;
-
-struct wxuin_t {
-  wxuin_t() {}
-  wxuin_t(int32_t v) __attribute__((enable_if(v == 0, "Expect only constant 
expressions"))) {}
-};
-
-struct wxuin64_t {
-  wxuin64_t() {}
-
-  explicit operator wxuin_t() const { return {}; }
-
-private:
-  operator int() const { return 0; }
-};
-
-struct wxuin64_t_deleted {
-  wxuin64_t_deleted() {}
-
-  explicit operator wxuin_t() const { return {}; }
-
-  operator int() = delete;
-};
-
-void main() {
-  wxuin64_t uin64{};
-  wxuin64_t_deleted deleted{};
-  auto b = static_cast<wxuin_t>(uin64);
-  auto c = static_cast<wxuin_t>(deleted);
-}
-
-}
-
 namespace DefaultArgs {
   void f(int n = __builtin_LINE()) __attribute__((enable_if(n == 12345, "only 
callable on line 12345"))); // expected-note {{only callable on line 12345}}
   void g() { f(); } // expected-error {{no matching function}}


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to