From: Mahmoud Matook > Sent: Wednesday, August 23, 2023 8:36 PM ... > I tried to use the relaxed version provided in the shared patchset link > besides not able to use is_constexpr(), I'm not able to use > __UNIQUE_ID() also. It's definded inside include/linux/compiler-gcc.h > and it uses another macro __PASTE() which is defined inside > include/linux/compiler_types.h. > not sure what to do next > > - bring those macros definitions to able to use the relaxed version. > - if the most important point for min/max defines inside selftests is to > avoid multiple evaluation is the below version acceptable? > > #define min(x, y) ({ \ > typeof(x) _x = (x); \ > typeof(y) _y = (y); \ > _x < _y ? _x : _y; \ > }) > > #define max(x, y) ({ \ > typeof(x) _x = (x); \ > typeof(y) _y = (y); \ > _x > _y ? _x : _y; \ > }) Those are a reasonable pair. If you want a signed-ness check the: _Static_assert(is_signed_type(typeof(a)) == is_signed_type(typeof(b)), "min/max signednesss") check should just drop into the above. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)