Compiling the utilities with Sun C++ in wide (64-bit) mode produces a large number of warnings of the type: Conversion of 64 bit type value to "unsigned" causes truncation. Most of these might be benign and can be silenced by adding appropriate casts but there might be some, especially those involving unsigned char, that should be reviewed more carefully to make sure they don't indicate real problems. For example, the localedef utility should validate data read from character set description files and locale definition files to make sure it's in the range of unsigned char (or 8 bit unsigned integer type to be precise) and issue diagnostics for values that exceed this range.
Description
Compiling the utilities with Sun C++ in wide (64-bit) mode produces a large number of warnings of the type: Conversion of 64 bit type value to "unsigned" causes truncation. Most of these might be benign and can be silenced by adding appropriate casts but there might be some, especially those involving unsigned char, that should be reviewed more carefully to make sure they don't indicate real problems. For example, the localedef utility should validate data read from character set description files and locale definition files to make sure it's in the range of unsigned char (or 8 bit unsigned integer type to be precise) and issue diagnostics for values that exceed this range.
http://svn.apache.org/viewvc?view=rev&revision=659253. This change fixes the vast majority of the warnings but not quite all of them. The remaining warnings are related to not-so-straightforward character conversions mentioned in the issue description or from template instantiations in the library headers, also not-so-straightforward.