>Until now, if the PADDED_MEMBERS macro was used more than once in a
>struct, it caused Clang and GCC warnings because of multiple definition of a
>member named "pad".  This commit fixes the problem by giving each of these
>a unique name.
>
>MSVC, Clang, and GCC all support the __COUNTER__ macro, although it is not
>standardized.
>
>Signed-off-by: Ben Pfaff <[email protected]>
>---
> include/openvswitch/util.h | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
>diff --git a/include/openvswitch/util.h b/include/openvswitch/util.h index
>8453550cd845..17b06528f1a0 100644
>--- a/include/openvswitch/util.h
>+++ b/include/openvswitch/util.h
>@@ -172,10 +172,13 @@ OVS_NO_RETURN void ovs_assert_failure(const
>char *, const char *, const char *);
>  *         PADDED_MEMBERS(8, uint8_t x; uint8_t y;);
>  *     };
>  */
>+#define PAD_PASTE2(x, y) x##y
>+#define PAD_PASTE(x, y) PAD_PASTE2(x, y) #define PAD_ID
>PAD_PASTE(pad,
>+__COUNTER__)
> #define PADDED_MEMBERS(UNIT, MEMBERS)                               \
>     union {                                                         \
>         struct { MEMBERS };                                         \
>-        uint8_t pad[ROUND_UP(sizeof(struct { MEMBERS }), UNIT)];    \
>+        uint8_t PAD_ID[ROUND_UP(sizeof(struct { MEMBERS }), UNIT)]; \
>     }
>
> static inline bool

LGTM, tested it as well.

Acked-by: Bhanuprakash Bodireddy <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to