>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
