elf32-arc.c: Don't cast between function pointer and void pointer
Casts should be avoided if at all possible, and in particular the C standard doesn't promise that function pointers can be cast to void* or vice-versa. It is only mentioned under J.5 Common extensions, saying "The following extensions are widely used in many systems, but are not portable to all implementations." * elf32-arc.c (replace_func): Correct return type. (get_replace_function): Use a replace_func function pointer rather than void*. Update associated ARC_RELOC_HOWTO define.
This commit is contained in:
parent
fd63a770b7
commit
e7f2f959e3
@ -1,3 +1,9 @@
|
|||||||
|
2020-10-16 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* elf32-arc.c (replace_func): Correct return type.
|
||||||
|
(get_replace_function): Use a replace_func function pointer rather
|
||||||
|
than void*. Update associated ARC_RELOC_HOWTO define.
|
||||||
|
|
||||||
2020-10-16 Alan Modra <amodra@gmail.com>
|
2020-10-16 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* elf32-cr16.c: Formatting.
|
* elf32-cr16.c: Formatting.
|
||||||
|
@ -391,17 +391,17 @@ static const struct arc_reloc_map arc_reloc_map[] =
|
|||||||
|
|
||||||
#undef ARC_RELOC_HOWTO
|
#undef ARC_RELOC_HOWTO
|
||||||
|
|
||||||
typedef ATTRIBUTE_UNUSED bfd_vma (*replace_func) (unsigned, int ATTRIBUTE_UNUSED);
|
typedef ATTRIBUTE_UNUSED unsigned (*replace_func) (unsigned, int ATTRIBUTE_UNUSED);
|
||||||
|
|
||||||
#define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \
|
#define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \
|
||||||
case TYPE: \
|
case TYPE: \
|
||||||
func = (void *) RELOC_FUNCTION; \
|
func = RELOC_FUNCTION; \
|
||||||
break;
|
break;
|
||||||
|
|
||||||
static replace_func
|
static replace_func
|
||||||
get_replace_function (bfd *abfd, unsigned int r_type)
|
get_replace_function (bfd *abfd, unsigned int r_type)
|
||||||
{
|
{
|
||||||
void *func = NULL;
|
replace_func func = NULL;
|
||||||
|
|
||||||
switch (r_type)
|
switch (r_type)
|
||||||
{
|
{
|
||||||
@ -411,7 +411,7 @@ get_replace_function (bfd *abfd, unsigned int r_type)
|
|||||||
if (func == replace_bits24 && bfd_big_endian (abfd))
|
if (func == replace_bits24 && bfd_big_endian (abfd))
|
||||||
func = replace_bits24_be;
|
func = replace_bits24_be;
|
||||||
|
|
||||||
return (replace_func) func;
|
return func;
|
||||||
}
|
}
|
||||||
#undef ARC_RELOC_HOWTO
|
#undef ARC_RELOC_HOWTO
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user