Storing a void pointer into a void pointer variable does not need an intermediate cast to uint32_t and is frowned upon by modern C compilers. --- a/libgloss/or1k/interrupts.c 2024-05-09 13:37:00.289629242 +0200 +++ b/libgloss/or1k/interrupts.c 2024-05-09 13:35:29.896791467 +0200 @@ -35,10 +35,10 @@ void or1k_interrupt_handler_add(uint32_t { #ifdef __OR1K_MULTICORE__ _or1k_interrupt_handler_table[or1k_coreid()][id] = handler; - _or1k_interrupt_handler_data_ptr_table[or1k_coreid()][id] = (uint32_t) data_ptr; + _or1k_interrupt_handler_data_ptr_table[or1k_coreid()][id] = data_ptr; #else _or1k_interrupt_handler_table[id] = handler; - _or1k_interrupt_handler_data_ptr_table[id] = (uint32_t) data_ptr; + _or1k_interrupt_handler_data_ptr_table[id] = data_ptr; #endif }