aboutsummaryrefslogtreecommitdiff
path: root/libc/platform/bionic/macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/platform/bionic/macros.h')
-rw-r--r--libc/platform/bionic/macros.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/libc/platform/bionic/macros.h b/libc/platform/bionic/macros.h
index 28a69e6d7..076cff116 100644
--- a/libc/platform/bionic/macros.h
+++ b/libc/platform/bionic/macros.h
@@ -83,11 +83,15 @@ char (&ArraySizeHelper(T (&array)[N]))[N]; // NOLINT(readability/casting)
#define __BIONIC_FALLTHROUGH
#endif
-template <typename T>
-static inline T* untag_address(T* p) {
+static inline uintptr_t untag_address(uintptr_t p) {
#if defined(__aarch64__)
- return reinterpret_cast<T*>(reinterpret_cast<uintptr_t>(p) & ((1ULL << 56) - 1));
+ return p & ((1ULL << 56) - 1);
#else
return p;
#endif
}
+
+template <typename T>
+static inline T* untag_address(T* p) {
+ return reinterpret_cast<T*>(untag_address(reinterpret_cast<uintptr_t>(p)));
+}