From e4f79046293deef6d3ce06dde44c488309efab4a Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Thu, 15 May 2003 19:08:25 +0000 Subject: libiberty/ChangeLog: 2003-05-14 Jim Blandy * 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 * 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. --- libiberty/functions.texi | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libiberty/functions.texi') diff --git a/libiberty/functions.texi b/libiberty/functions.texi index 4261d86..b34c204 100644 --- a/libiberty/functions.texi +++ b/libiberty/functions.texi @@ -337,13 +337,19 @@ or zero if it is not. Note that the value you pass will be cast to @end deftypefn @c hex.c:42 -@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 @c index.c:5 -- cgit v1.1