C++ does not allow for an implicit conversion from void * to pointer to object or incomplete type.
Signed-off-by: Ben Pfaff <b...@ovn.org> --- include/openvswitch/ofp-actions.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/openvswitch/ofp-actions.h b/include/openvswitch/ofp-actions.h index 7b4aa9201d9b..00dde7c89e8d 100644 --- a/include/openvswitch/ofp-actions.h +++ b/include/openvswitch/ofp-actions.h @@ -195,7 +195,8 @@ BUILD_ASSERT_DECL(sizeof(struct ofpact) == 4); static inline struct ofpact * ofpact_next(const struct ofpact *ofpact) { - return (void *) ((uint8_t *) ofpact + OFPACT_ALIGN(ofpact->len)); + return ALIGNED_CAST(struct ofpact *, + (uint8_t *) ofpact + OFPACT_ALIGN(ofpact->len)); } struct ofpact *ofpact_next_flattened(const struct ofpact *); @@ -203,7 +204,7 @@ struct ofpact *ofpact_next_flattened(const struct ofpact *); static inline struct ofpact * ofpact_end(const struct ofpact *ofpacts, size_t ofpacts_len) { - return (void *) ((uint8_t *) ofpacts + ofpacts_len); + return ALIGNED_CAST(struct ofpact *, (uint8_t *) ofpacts + ofpacts_len); } static inline const struct ofpact * @@ -1103,8 +1104,8 @@ void *ofpact_finish(struct ofpbuf *, struct ofpact *); static inline struct STRUCT * \ ofpact_put_##ENUM(struct ofpbuf *ofpacts) \ { \ - return ofpact_put(ofpacts, OFPACT_##ENUM, \ - OFPACT_##ENUM##_SIZE); \ + return (struct STRUCT *) ofpact_put(ofpacts, OFPACT_##ENUM, \ + OFPACT_##ENUM##_SIZE); \ } \ \ static inline void \ @@ -1119,7 +1120,7 @@ void *ofpact_finish(struct ofpbuf *, struct ofpact *); { \ struct ofpact *ofpact = &(*ofpactp)->ofpact; \ ovs_assert(ofpact->type == OFPACT_##ENUM); \ - *ofpactp = ofpact_finish(ofpbuf, ofpact); \ + *ofpactp = (struct STRUCT *) ofpact_finish(ofpbuf, ofpact); \ } OFPACTS #undef OFPACT -- 2.10.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev