mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
coccinelle: ignore macro transformations in the macros themselves
For example, the following transformation: - sizeof(s)-1 + STRLEN(s) would replace sizeof by STRLEN even in the STRLEN macro definition itself, which generates following nonsensical patch: --- src/basic/macro.h +++ /tmp/cocci-output-8753-b50773-macro.h @@ -182,7 +182,7 @@ static inline unsigned long ALIGN_POWER2 * Contrary to strlen(), this is a constant expression. * @x: a string literal. */ -#define STRLEN(x) (sizeof(""x"") - 1) +#define STRLEN(x) (STRLEN("" x "")) /* * container_of - cast a member of a structure out to the containing structure Let's exclude the macro itself from the transformation to avoid this
This commit is contained in:
parent
55033662f9
commit
33af88cf70
@ -1,8 +1,12 @@
|
||||
@@
|
||||
constant s;
|
||||
@@
|
||||
(
|
||||
#define STRLEN
|
||||
&
|
||||
- sizeof(s)-1
|
||||
+ STRLEN(s)
|
||||
)
|
||||
@@
|
||||
constant s;
|
||||
@@
|
||||
|
@ -1,8 +1,16 @@
|
||||
@@
|
||||
@@
|
||||
(
|
||||
#define DEBUG_LOGGING
|
||||
&
|
||||
- _unlikely_(log_get_max_level() >= LOG_DEBUG)
|
||||
+ DEBUG_LOGGING
|
||||
)
|
||||
@@
|
||||
@@
|
||||
(
|
||||
#define DEBUG_LOGGING
|
||||
&
|
||||
- log_get_max_level() >= LOG_DEBUG
|
||||
+ DEBUG_LOGGING
|
||||
)
|
||||
|
@ -21,10 +21,18 @@ expression s;
|
||||
@@
|
||||
expression a, b;
|
||||
@@
|
||||
(
|
||||
#define memzero
|
||||
&
|
||||
- memset(a, 0, b)
|
||||
+ memzero(a, b)
|
||||
)
|
||||
@@
|
||||
expression a, b;
|
||||
@@
|
||||
(
|
||||
#define memzero
|
||||
&
|
||||
- bzero(a, b)
|
||||
+ memzero(a, b)
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user