diff options
-rw-r--r-- | libmisc/include/libmisc/macro.h | 2 | ||||
-rw-r--r-- | libmisc/include/libmisc/private.h | 4 | ||||
-rw-r--r-- | libobj/include/libobj/obj.h | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/libmisc/include/libmisc/macro.h b/libmisc/include/libmisc/macro.h index a95ac82..93286c6 100644 --- a/libmisc/include/libmisc/macro.h +++ b/libmisc/include/libmisc/macro.h @@ -9,6 +9,8 @@ #include <libmisc/assert.h> +#define LM_FORCE_SEMICOLON static_assert(1, "force semicolon") + /* for function definitions */ #define LM_UNUSED(argname) diff --git a/libmisc/include/libmisc/private.h b/libmisc/include/libmisc/private.h index 5518d1f..5a8777c 100644 --- a/libmisc/include/libmisc/private.h +++ b/libmisc/include/libmisc/private.h @@ -11,7 +11,7 @@ #define YES LM_SENTINEL() #define IS_IMPLEMENTATION_FOR(name) LM_IS_SENTINEL(IMPLEMENTATION_FOR_##name) -#define BEGIN_PRIVATE(name) LM_IF(IS_IMPLEMENTATION_FOR(name))()(struct {) struct {} LM_CAT2_(_PRIVATE_FORCE_SEMICOLON_, __COUNTER__) -#define END_PRIVATE(name) LM_IF(IS_IMPLEMENTATION_FOR(name))(struct {} LM_CAT2_(_PRIVATE_FORCE_SEMICOLON_, __COUNTER__))(} LM_CAT2_(_PRIVATE_, __COUNTER__)) +#define BEGIN_PRIVATE(name) LM_IF(IS_IMPLEMENTATION_FOR(name))()(struct {) LM_FORCE_SEMICOLON +#define END_PRIVATE(name) LM_IF(IS_IMPLEMENTATION_FOR(name))(LM_FORCE_SEMICOLON)(} LM_CAT2_(_PRIVATE_, __COUNTER__)) #endif /* _LIBMISC_PRIVATE_H_ */ diff --git a/libobj/include/libobj/obj.h b/libobj/include/libobj/obj.h index 7a9041e..81058b6 100644 --- a/libobj/include/libobj/obj.h +++ b/libobj/include/libobj/obj.h @@ -115,7 +115,7 @@ .vtable = &_lo_##_ARG_impl_name##_##_ARG_iface_name##_vtable, \ }; \ } \ - extern int LM_CAT2_(_LO_FORCE_SEMICOLON_, __COUNTER__) + LM_FORCE_SEMICOLON /** * Use `LO_IMPLEMENTATION_C(iface_name, impl_type, impl_name[, static])` in a .c |