locale_facets.tcc (num_put<>::do_put(iter_type, ios_base&, char_type, const void...
authorPaolo Carlini <pcarlini@suse.de>
Mon, 2 Apr 2007 09:49:31 +0000 (09:49 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 2 Apr 2007 09:49:31 +0000 (09:49 +0000)
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

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/locale_facets.tcc

index 371360a4bd15851e1994adaa954bbfc42694f7d6..62bbca9db3308b5e06e354a7364888a09ffa9fc4 100644 (file)
@@ -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.
index b6feda0c0df357f24af9cd0d018ad65eb2c58364..8290d4ae5b31af3fc279b97f8c9129db7a720753 100644 (file)
@@ -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;
     }