std-aux: add _NM_INT_IS_SIGNED() and _NM_INT_SAME_SIGNEDNESS() macros
This commit is contained in:
@@ -32,6 +32,13 @@ G_STATIC_ASSERT(_nm_alignof(NMEtherAddr) <= _nm_alignof(NMIPAddr));
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
G_STATIC_ASSERT(_NM_INT_IS_SIGNED(1));
|
||||
G_STATIC_ASSERT(!_NM_INT_IS_SIGNED(1u));
|
||||
G_STATIC_ASSERT(_NM_INT_SAME_SIGNEDNESS((short) 1, 1l));
|
||||
G_STATIC_ASSERT(!_NM_INT_SAME_SIGNEDNESS((unsigned short) 1, 1l));
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
test_nm_static_assert(void)
|
||||
{
|
||||
|
@@ -154,6 +154,12 @@ typedef uint64_t _nm_bitwise nm_be64_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#define _NM_INT_IS_SIGNED(arg) (!(((typeof(arg)) -1) > 0))
|
||||
|
||||
#define _NM_INT_SAME_SIGNEDNESS(arg1, arg2) (_NM_INT_IS_SIGNED(arg1) == _NM_INT_IS_SIGNED(arg2))
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#define NM_PASTE_ARGS(identifier1, identifier2) identifier1##identifier2
|
||||
#define NM_PASTE(identifier1, identifier2) NM_PASTE_ARGS(identifier1, identifier2)
|
||||
|
||||
|
Reference in New Issue
Block a user