forked from Imagelibrary/binutils-gdb
libiberty/ChangeLog:
2003-05-14 Jim Blandy <jimb@redhat.com> * hex.c (_hex_value): Make this unsigned. (hex_value): Update documentation for new return type. hex_value now expands to an unsigned int expression, to avoid unexpected sign extension when we store it in a bfd_vma, which is larger than int on some platforms. * functions.texi: Regenerated. include/ChangeLog: 2003-05-14 Jim Blandy <jimb@redhat.com> * libiberty.h (hex_value): Make the value an unsigned int, to avoid unexpected sign-extension when cast to unsigned types larger than int --- like bfd_vma, on some platforms. (_hex_value): Update declaration.
This commit is contained in:
@@ -39,13 +39,19 @@ or zero if it is not. Note that the value you pass will be cast to
|
||||
|
||||
@end deftypefn
|
||||
|
||||
@deftypefn Extension int hex_value (int @var{c})
|
||||
@deftypefn Extension unsigned int hex_value (int @var{c})
|
||||
|
||||
Returns the numeric equivalent of the given character when interpreted
|
||||
as a hexidecimal digit. The result is undefined if you pass an
|
||||
invalid hex digit. Note that the value you pass will be cast to
|
||||
@code{unsigned char} within the macro.
|
||||
|
||||
The @code{hex_value} macro returns @code{unsigned int}, rather than
|
||||
signed @code{int}, to make it easier to use in parsing addresses from
|
||||
hex dump files: a signed @code{int} would be sign-extended when
|
||||
converted to a wider unsigned type --- like @code{bfd_vma}, on some
|
||||
systems.
|
||||
|
||||
@end deftypefn
|
||||
|
||||
@undocumented _hex_array_size
|
||||
@@ -60,7 +66,7 @@ invalid hex digit. Note that the value you pass will be cast to
|
||||
&& 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 \
|
||||
&& EOF == -1
|
||||
|
||||
const char _hex_value[_hex_array_size] =
|
||||
const unsigned char _hex_value[_hex_array_size] =
|
||||
{
|
||||
_hex_bad, _hex_bad, _hex_bad, _hex_bad, /* NUL SOH STX ETX */
|
||||
_hex_bad, _hex_bad, _hex_bad, _hex_bad, /* EOT ENQ ACK BEL */
|
||||
@@ -139,7 +145,7 @@ const char _hex_value[_hex_array_size] =
|
||||
|
||||
#else
|
||||
|
||||
char _hex_value[_hex_array_size];
|
||||
unsigned char _hex_value[_hex_array_size];
|
||||
|
||||
#endif /* not ASCII */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user