mirror of
https://github.com/systemd/systemd
synced 2024-09-16 06:43:18 +00:00
macro.h: let F_TYPE_CMP() macro fail to compile, if second parameter is not const
If the magic parameter is not a const, then the macro does not work, so better fail to compile, than be surprised afterwards.
This commit is contained in:
parent
98f59e59e0
commit
a858b64ddd
|
@ -272,11 +272,12 @@ do { \
|
|||
* signed int in the kernel and these negative numbers are extended to
|
||||
* long, which cannot be simply compared to the magic constants anymore.
|
||||
*/
|
||||
#define F_TYPE_CMP(f, c) \
|
||||
#define F_TYPE_CMP(f_type, magic) \
|
||||
__extension__ ({ \
|
||||
__SWORD_TYPE _f = (f); \
|
||||
const __SWORD_TYPE _c = (c); \
|
||||
const int _c32 = (c); \
|
||||
__SWORD_TYPE _f = (f_type); \
|
||||
const __SWORD_TYPE _c = (magic); \
|
||||
const int _c32 = 1 ? (magic) \
|
||||
: sizeof((int[magic]){0}); \
|
||||
(_f == _c || _f == _c32 ); \
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue