mempool: fix empty structure definition
This commit addresses the following warning reported by clang, which happens by default, as long as CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG is disabled: warning: empty struct has size 0 in C, size 1 in C++ C and C++ must use the same size for objects to avoid corruption during run time. Fixes: 97e7e685bfcd ("mempool: add structure for object trailers") Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
parent
a088b5ea35
commit
1cc275ef61
@ -199,7 +199,11 @@ rte_mempool_calc_obj_size(uint32_t elt_size, uint32_t flags,
|
||||
sz->header_size = RTE_ALIGN_CEIL(sz->header_size,
|
||||
RTE_MEMPOOL_ALIGN);
|
||||
|
||||
#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
|
||||
sz->trailer_size = sizeof(struct rte_mempool_objtlr);
|
||||
#else
|
||||
sz->trailer_size = 0;
|
||||
#endif
|
||||
|
||||
/* element size is 8 bytes-aligned at least */
|
||||
sz->elt_size = RTE_ALIGN_CEIL(elt_size, sizeof(uint64_t));
|
||||
|
@ -163,6 +163,8 @@ struct rte_mempool_objhdr {
|
||||
*/
|
||||
STAILQ_HEAD(rte_mempool_objhdr_list, rte_mempool_objhdr);
|
||||
|
||||
#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
|
||||
|
||||
/**
|
||||
* Mempool object trailer structure
|
||||
*
|
||||
@ -170,11 +172,11 @@ STAILQ_HEAD(rte_mempool_objhdr_list, rte_mempool_objhdr);
|
||||
* trailer structure containing a cookie preventing memory corruptions.
|
||||
*/
|
||||
struct rte_mempool_objtlr {
|
||||
#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
|
||||
uint64_t cookie; /**< Debug cookie. */
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* A list of memory where objects are stored
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user