aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-04-02 09:49:31 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-04-02 09:49:31 +0000
commit5b3f6d1a469246362fec0726b34a71d0bb5da96b (patch)
treea2165c7ee97b0c62b987104d0198a4e6cf8f84f9
parentae65d5121999f4928041cd3f24220442109483d9 (diff)
downloadgcc-5b3f6d1a469246362fec0726b34a71d0bb5da96b.zip
gcc-5b3f6d1a469246362fec0726b34a71d0bb5da96b.tar.gz
gcc-5b3f6d1a469246362fec0726b34a71d0bb5da96b.tar.bz2
locale_facets.tcc (num_put<>::do_put(iter_type, ios_base&, char_type, const void*)): Fix for sizeof(const void*) > sizeof(unsigned long).
2007-04-02 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (num_put<>::do_put(iter_type, ios_base&, char_type, const void*)): Fix for sizeof(const void*) > sizeof(unsigned long). From-SVN: r123421
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/locale_facets.tcc6
2 files changed, 11 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 371360a..62bbca9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-02 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (num_put<>::do_put(iter_type,
+ ios_base&, char_type, const void*)): Fix for sizeof(const void*)
+ > sizeof(unsigned long).
+
2007-04-01 Andreas Tobler <a.tobler@schweiz.org>
* include/tr1/poly_laguerre.tcc: Missing s/__alpha/__alpha1, line 278.
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index b6feda0..8290d4a 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -1313,8 +1313,12 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
| ios_base::internal);
__io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase));
+ typedef __gnu_cxx::__conditional_type<(sizeof(const void*)
+ <= sizeof(unsigned long)),
+ unsigned long, unsigned long long>::__type _UIntPtrType;
+
__s = _M_insert_int(__s, __io, __fill,
- reinterpret_cast<unsigned long>(__v));
+ reinterpret_cast<_UIntPtrType>(__v));
__io.flags(__flags);
return __s;
}