This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Does --enable-clocale=gnu work on Linux/ia64?
On Sat, Nov 24, 2001 at 08:36:12PM -0800, Benjamin Kosnik wrote:
>
> > Well, I tried --enable-clocale=gnu again with gcc-3.1 from CVS on
> > Linux/ia64. Now I got this problem:
> >
> > _Intl>::_M_initialize_moneypunct(__locale_struct*) [with _CharT = wchar_t,
> > bool _Intl = false]':
> > moneypunct.cc:401: reinterpret_cast from `char*' to `wchar_t' loses precision
> > moneypunct.cc:402: reinterpret_cast from `char*' to `wchar_t' loses precision
> > numpunct.cc: In member function `void
> > std::numpunct<_CharT>::_M_initialize_numpunct(__locale_struct*) [with _CharT
> > = wchar_t]':
> > numpunct.cc:80: reinterpret_cast from `char*' to `wchar_t' loses precision
> > numpunct.cc:81: reinterpret_cast from `char*' to `wchar_t' loses precision
> > make[5]: *** [numpunct.lo] Error 1
> > make[5]: *** Waiting for unfinished jobs....
>
> Which is this:
> _M_decimal_point =
> reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC,
> __cloc));
>
>
> Why does this work on x86 but not ia64?
>
> > > Has anyone tried --enable-clocale=gnu on Linux/ia64?
>
> Nope. It seems to work on powerpc though.
Well, on x86 and powerpc, wchar_t is long int. Gcc won't complain about
casting from char* to wchar_t. However, on ia64, wchar_t is int. Gcc is
not very happy. I think that part of libstdc++ is pretty much broken.
H.J.