Change abseil hardening assertion in any_invocable from macro to function

This associates debug information with the assertion site,
allowing clearer stack-traces for assertion failures and
better accounting of the performance overhead of assertions.

PiperOrigin-RevId: 912616493
Change-Id: I3bcaa8d24fc7d9adc04e67fe228bf418bb5eb842
diff --git a/absl/functional/BUILD.bazel b/absl/functional/BUILD.bazel
index 5e85523..85793aa 100644
--- a/absl/functional/BUILD.bazel
+++ b/absl/functional/BUILD.bazel
@@ -44,6 +44,7 @@
     deps = [
         "//absl/base:config",
         "//absl/base:core_headers",
+        "//absl/base:hardening",
         "//absl/base:nullability",
         "//absl/meta:type_traits",
         "//absl/utility",
@@ -62,6 +63,7 @@
         ":any_invocable",
         "//absl/base:config",
         "//absl/base:core_headers",
+        "//absl/base:hardening",
         "//absl/base:nullability",
         "//absl/meta:type_traits",
         "//absl/utility",
diff --git a/absl/functional/CMakeLists.txt b/absl/functional/CMakeLists.txt
index 362c149..7beb176 100644
--- a/absl/functional/CMakeLists.txt
+++ b/absl/functional/CMakeLists.txt
@@ -27,6 +27,7 @@
     absl::base
     absl::config
     absl::core_headers
+    absl::hardening
     absl::type_traits
     absl::utility
   PUBLIC
diff --git a/absl/functional/internal/any_invocable.h b/absl/functional/internal/any_invocable.h
index 262385a..f8c2f64 100644
--- a/absl/functional/internal/any_invocable.h
+++ b/absl/functional/internal/any_invocable.h
@@ -65,6 +65,7 @@
 
 #include "absl/base/attributes.h"
 #include "absl/base/config.h"
+#include "absl/base/internal/hardening.h"
 #include "absl/base/macros.h"
 #include "absl/base/nullability.h"
 #include "absl/base/optimization.h"
@@ -729,7 +730,7 @@
     /*Raises a fatal error when the AnyInvocable is invoked after a move*/     \
     static ReturnType InvokedAfterMove(                                        \
         TypeErasedState*, ForwardedParameterType<P>...) noexcept(noex) {       \
-      ABSL_HARDENING_ASSERT(false && "AnyInvocable use-after-move");           \
+      absl::base_internal::HardeningAssert(false);                             \
       std::terminate();                                                        \
     }                                                                          \
                                                                                \