Skip to content

Commit a64c8ee

Browse files
committed
avoid cast align and void * aritmetic warnings
1 parent f8a6465 commit a64c8ee

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

src/param/param.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
} \
2222
return data; \
2323
} else { \
24-
return *(_type *)((uint8_t *) param->addr + i * param->array_step); \
24+
/* Increment pointer in bytes, we have static check on array step being aligned */ \
25+
uintptr_t aligned_address = (uintptr_t)param->addr + (uintptr_t) i * (uintptr_t)param->array_step; \
26+
return *(_type *)aligned_address; \
2527
} \
2628
} \
2729
_type param_get_##_name(const param_t * param) { \
@@ -90,7 +92,8 @@ void param_get_data(const param_t * param, void * outbuf, int len)
9092
#endif
9193

9294
#define PARAM_SET(_type, name_in, _swapfct) \
93-
static void __param_set_##name_in(const param_t * param, _type value, bool do_callback, unsigned int i) { \
95+
void __param_set_##name_in(const param_t * param, _type value, bool do_callback, unsigned int i); \
96+
void __param_set_##name_in(const param_t * param, _type value, bool do_callback, unsigned int i) { \
9497
if (i >= (unsigned int) param->array_size) { \
9598
return; \
9699
} \
@@ -99,8 +102,11 @@ void param_get_data(const param_t * param, void * outbuf, int len)
99102
value = _swapfct(value); \
100103
vmem_write_direct(param->vmem, param->vmem->vaddr + param->vaddr + i * param->array_step, &value, sizeof(_type)); \
101104
} else { \
105+
/* Increment pointer in bytes, we have static check on array step being aligned */ \
106+
uintptr_t aligned_write_address = (uintptr_t)param->addr + (uintptr_t) i * (uintptr_t)param->array_step; \
102107
/* Aligned access directly to RAM */ \
103-
*(_type*)((uint8_t *) param->addr + i * param->array_step) = value; \
108+
_type * typecasted_write_address = (_type *)aligned_write_address; \
109+
*typecasted_write_address = value; \
104110
} \
105111
/* Callback */ \
106112
if ((do_callback == true) && (param->callback)) { \

0 commit comments

Comments
 (0)