diff --git a/libstdc++-v3/include/ext/pointer.h b/libstdc++-v3/include/ext/pointer.h index 6bed55f642d..5bf638a0c28 100644 --- a/libstdc++-v3/include/ext/pointer.h +++ b/libstdc++-v3/include/ext/pointer.h @@ -120,7 +120,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (_M_diff == 1) return 0; else - return reinterpret_cast<_Tp*>(reinterpret_cast<_UIntPtrType>(this) + return reinterpret_cast<_Tp*>(reinterpret_cast(this) + _M_diff); } @@ -130,30 +130,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (!__arg) _M_diff = 1; else - _M_diff = reinterpret_cast<_UIntPtrType>(__arg) - - reinterpret_cast<_UIntPtrType>(this); + _M_diff = reinterpret_cast(__arg) + - reinterpret_cast(this); } // Comparison of pointers inline bool operator<(const _Relative_pointer_impl& __rarg) const - { return (reinterpret_cast<_UIntPtrType>(this->get()) - < reinterpret_cast<_UIntPtrType>(__rarg.get())); } + { return (reinterpret_cast(this->get()) + < reinterpret_cast(__rarg.get())); } inline bool operator==(const _Relative_pointer_impl& __rarg) const - { return (reinterpret_cast<_UIntPtrType>(this->get()) - == reinterpret_cast<_UIntPtrType>(__rarg.get())); } + { return (reinterpret_cast(this->get()) + == reinterpret_cast(__rarg.get())); } private: -#ifdef _GLIBCXX_USE_LONG_LONG - typedef __gnu_cxx::__conditional_type< - (sizeof(unsigned long) >= sizeof(void*)), - unsigned long, unsigned long long>::__type _UIntPtrType; -#else - typedef unsigned long _UIntPtrType; -#endif - _UIntPtrType _M_diff; + typedef __UINTPTR_TYPE__ uintptr_t; + uintptr_t _M_diff; }; /** @@ -173,7 +167,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return 0; else return reinterpret_cast - (reinterpret_cast<_UIntPtrType>(this) + _M_diff); + (reinterpret_cast(this) + _M_diff); } void @@ -182,30 +176,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (!__arg) _M_diff = 1; else - _M_diff = reinterpret_cast<_UIntPtrType>(__arg) - - reinterpret_cast<_UIntPtrType>(this); + _M_diff = reinterpret_cast(__arg) + - reinterpret_cast(this); } // Comparison of pointers inline bool operator<(const _Relative_pointer_impl& __rarg) const - { return (reinterpret_cast<_UIntPtrType>(this->get()) - < reinterpret_cast<_UIntPtrType>(__rarg.get())); } + { return (reinterpret_cast(this->get()) + < reinterpret_cast(__rarg.get())); } inline bool operator==(const _Relative_pointer_impl& __rarg) const - { return (reinterpret_cast<_UIntPtrType>(this->get()) - == reinterpret_cast<_UIntPtrType>(__rarg.get())); } + { return (reinterpret_cast(this->get()) + == reinterpret_cast(__rarg.get())); } private: -#ifdef _GLIBCXX_USE_LONG_LONG - typedef __gnu_cxx::__conditional_type< - (sizeof(unsigned long) >= sizeof(void*)), - unsigned long, unsigned long long>::__type _UIntPtrType; -#else - typedef unsigned long _UIntPtrType; -#endif - _UIntPtrType _M_diff; + typedef __UINTPTR_TYPE__ uintptr_t; + uintptr_t _M_diff; }; /** @@ -597,7 +585,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template using rebind = typename __gnu_cxx::_Pointer_adapter< - typename pointer_traits<_Storage_policy>::template rebind<_Up>>; + typename pointer_traits<_Storage_policy>::template rebind<_Up>>; static pointer pointer_to(typename pointer::reference __r) noexcept { return pointer(std::addressof(__r)); }