mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-06 16:21:50 +00:00
glib-aux: improve NM_FLAGS_{SET,UNSET,ASSIGN,ASSIGN_MASK}() macros
- add unused code which triggers a compiler check about compatible enum values.
This commit is contained in:
parent
28c27f3070
commit
d359a9a1e7
|
@ -1023,34 +1023,43 @@ nm_g_variant_equal(GVariant *a, GVariant *b)
|
||||||
#define NM_FLAGS_SET(flags, val) \
|
#define NM_FLAGS_SET(flags, val) \
|
||||||
({ \
|
({ \
|
||||||
const typeof(flags) _flags = (flags); \
|
const typeof(flags) _flags = (flags); \
|
||||||
const typeof(flags) _val = (val); \
|
typeof(_flags) _val = (val); \
|
||||||
\
|
\
|
||||||
_flags | _val; \
|
(void) (FALSE && (flags) == (val)); \
|
||||||
|
\
|
||||||
|
(_flags | _val); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define NM_FLAGS_UNSET(flags, val) \
|
#define NM_FLAGS_UNSET(flags, val) \
|
||||||
({ \
|
({ \
|
||||||
const typeof(flags) _flags = (flags); \
|
const typeof(flags) _flags = (flags); \
|
||||||
const typeof(flags) _val = (val); \
|
typeof(_flags) _val = (val); \
|
||||||
\
|
\
|
||||||
_flags & (~_val); \
|
(void) (FALSE && (flags) == (val)); \
|
||||||
|
\
|
||||||
|
(_flags & (~_val)); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define NM_FLAGS_ASSIGN(flags, val, assign) \
|
#define NM_FLAGS_ASSIGN(flags, val, assign) \
|
||||||
({ \
|
({ \
|
||||||
const typeof(flags) _flags = (flags); \
|
const typeof(flags) _flags = (flags); \
|
||||||
const typeof(flags) _val = (val); \
|
typeof(_flags) _val = (val); \
|
||||||
\
|
\
|
||||||
(assign) ? _flags | (_val) : _flags & (~_val); \
|
(void) (FALSE && (flags) == (val)); \
|
||||||
|
\
|
||||||
|
(assign) ? (_flags | _val) : (_flags & (~_val)); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define NM_FLAGS_ASSIGN_MASK(flags, mask, val) \
|
#define NM_FLAGS_ASSIGN_MASK(flags, mask, val) \
|
||||||
({ \
|
({ \
|
||||||
const typeof(flags) _flags = (flags); \
|
const typeof(flags) _flags = (flags); \
|
||||||
const typeof(flags) _mask = (mask); \
|
typeof(_flags) _mask = (mask); \
|
||||||
const typeof(flags) _val = (val); \
|
typeof(_flags) _val = (val); \
|
||||||
\
|
\
|
||||||
((_flags & ~_mask) | (_mask & _val)); \
|
(void) (FALSE && (flags) == (val)); \
|
||||||
|
(void) (FALSE && (flags) == (mask)); \
|
||||||
|
\
|
||||||
|
((_flags & (~_mask)) | (_val & _mask)); \
|
||||||
})
|
})
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
Loading…
Reference in a new issue