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:
		| @@ -1,3 +1,10 @@ | |||||||
|  | 2003-05-15  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. | ||||||
|  |  | ||||||
| 2003-05-09  Alan Modra  <amodra@bigpond.net.au> | 2003-05-09  Alan Modra  <amodra@bigpond.net.au> | ||||||
|  |  | ||||||
| 	* xtensa-isa-internal.h (xtensa_isa_module_struct): Remove const on | 	* xtensa-isa-internal.h (xtensa_isa_module_struct): Remove const on | ||||||
|   | |||||||
| @@ -254,12 +254,12 @@ extern double physmem_available PARAMS ((void)); | |||||||
|  |  | ||||||
| #define _hex_array_size 256 | #define _hex_array_size 256 | ||||||
| #define _hex_bad	99 | #define _hex_bad	99 | ||||||
| extern const char _hex_value[_hex_array_size]; | extern const unsigned char _hex_value[_hex_array_size]; | ||||||
| extern void hex_init PARAMS ((void)); | extern void hex_init PARAMS ((void)); | ||||||
| #define hex_p(c)	(hex_value (c) != _hex_bad) | #define hex_p(c)	(hex_value (c) != _hex_bad) | ||||||
| /* If you change this, note well: Some code relies on side effects in | /* If you change this, note well: Some code relies on side effects in | ||||||
|    the argument being performed exactly once.  */ |    the argument being performed exactly once.  */ | ||||||
| #define hex_value(c)	(_hex_value[(unsigned char) (c)]) | #define hex_value(c)	((unsigned int) _hex_value[(unsigned char) (c)]) | ||||||
|  |  | ||||||
| /* Definitions used by the pexecute routine.  */ | /* Definitions used by the pexecute routine.  */ | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user