mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-19 23:12:09 +00:00
Continue to fix incorrect casts via size_t for some platforms
Now also for casts: - to remove alignment warnings - casts between pointers and ints
This commit is contained in:
parent
f2a5aa2866
commit
e5f9f187ad
@ -581,7 +581,7 @@ ip_NetToMediaTable_get_next_cell_instance_and_value(const u32_t* column, struct
|
|||||||
snmp_ip4_to_oid(ip, &test_oid[1]);
|
snmp_ip4_to_oid(ip, &test_oid[1]);
|
||||||
|
|
||||||
/* check generated OID: is it a candidate for the next one? */
|
/* check generated OID: is it a candidate for the next one? */
|
||||||
snmp_next_oid_check(&state, test_oid, LWIP_ARRAYSIZE(ip_NetToMediaTable_oid_ranges), (void*)(size_t)i);
|
snmp_next_oid_check(&state, test_oid, LWIP_ARRAYSIZE(ip_NetToMediaTable_oid_ranges), LWIP_PTR_NUMERIC_CAST(void*, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ ip_NetToMediaTable_get_next_cell_instance_and_value(const u32_t* column, struct
|
|||||||
if (state.status == SNMP_NEXT_OID_STATUS_SUCCESS) {
|
if (state.status == SNMP_NEXT_OID_STATUS_SUCCESS) {
|
||||||
snmp_oid_assign(row_oid, state.next_oid, state.next_oid_len);
|
snmp_oid_assign(row_oid, state.next_oid, state.next_oid_len);
|
||||||
/* fill in object properties */
|
/* fill in object properties */
|
||||||
return ip_NetToMediaTable_get_cell_value_core((u8_t)(size_t)state.reference, column, value, value_len);
|
return ip_NetToMediaTable_get_cell_value_core(LWIP_PTR_NUMERIC_CAST(u8_t, state.reference), column, value, value_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* not found */
|
/* not found */
|
||||||
|
@ -840,7 +840,7 @@ etharp_output(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr)
|
|||||||
if (!ip4_addr_netcmp(ipaddr, netif_ip4_addr(netif), netif_ip4_netmask(netif)) &&
|
if (!ip4_addr_netcmp(ipaddr, netif_ip4_addr(netif), netif_ip4_netmask(netif)) &&
|
||||||
!ip4_addr_islinklocal(ipaddr)) {
|
!ip4_addr_islinklocal(ipaddr)) {
|
||||||
#if LWIP_AUTOIP
|
#if LWIP_AUTOIP
|
||||||
struct ip_hdr *iphdr = (struct ip_hdr*)(size_t)q->payload;
|
struct ip_hdr *iphdr = LWIP_ALIGNMENT_CAST(struct ip_hdr*, q->payload);
|
||||||
/* According to RFC 3297, chapter 2.6.2 (Forwarding Rules), a packet with
|
/* According to RFC 3297, chapter 2.6.2 (Forwarding Rules), a packet with
|
||||||
a link-local source address must always be "directly to its destination
|
a link-local source address must always be "directly to its destination
|
||||||
on the same physical link. The host MUST NOT send the packet to any
|
on the same physical link. The host MUST NOT send the packet to any
|
||||||
|
@ -209,7 +209,7 @@ memp_overflow_check_all(void)
|
|||||||
for (j = 0; j < memp_pools[i]->num; ++j) {
|
for (j = 0; j < memp_pools[i]->num; ++j) {
|
||||||
memp_overflow_check_element_overflow(p, memp_pools[i]);
|
memp_overflow_check_element_overflow(p, memp_pools[i]);
|
||||||
memp_overflow_check_element_underflow(p, memp_pools[i]);
|
memp_overflow_check_element_underflow(p, memp_pools[i]);
|
||||||
p = (struct memp*)(size_t)((u8_t*)p + MEMP_SIZE + memp_pools[i]->size + MEMP_SANITY_REGION_AFTER_ALIGNED);
|
p = LWIP_ALIGNMENT_CAST(struct memp*, ((u8_t*)p + MEMP_SIZE + memp_pools[i]->size + MEMP_SANITY_REGION_AFTER_ALIGNED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SYS_ARCH_UNPROTECT(old_level);
|
SYS_ARCH_UNPROTECT(old_level);
|
||||||
|
@ -138,6 +138,18 @@ typedef uintptr_t mem_ptr_t;
|
|||||||
#define LWIP_CONST_CAST(target_type, val) ((target_type)((ptrdiff_t)val))
|
#define LWIP_CONST_CAST(target_type, val) ((target_type)((ptrdiff_t)val))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** Get rid of alignment cast warnings (GCC -Wcast-align) */
|
||||||
|
#ifndef LWIP_ALIGNMENT_CAST
|
||||||
|
#define LWIP_ALIGNMENT_CAST(target_type, val) LWIP_CONST_CAST(target_type, val)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Get rid of warnings related to pointer-to-numeric and vice-versa casts,
|
||||||
|
* e.g. "conversion from 'u8_t' to 'void *' of greater size"
|
||||||
|
*/
|
||||||
|
#ifndef LWIP_PTR_NUMERIC_CAST
|
||||||
|
#define LWIP_PTR_NUMERIC_CAST(target_type, val) LWIP_CONST_CAST(target_type, val)
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Allocates a memory buffer of specified size that is of sufficient size to align
|
/** Allocates a memory buffer of specified size that is of sufficient size to align
|
||||||
* its start address using LWIP_MEM_ALIGN.
|
* its start address using LWIP_MEM_ALIGN.
|
||||||
* You can declare your own version here e.g. to enforce alignment without adding
|
* You can declare your own version here e.g. to enforce alignment without adding
|
||||||
|
Loading…
Reference in New Issue
Block a user