mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
For example, following transformation:
- isempty(s) ? NULL : s
+ empty_to_null(s)
would get applied to the empty_to_null function itself as well,
causing an infinite recursion, like:
--- src/basic/string-util.h
+++ /tmp/cocci-output-307-9f76e6-string-util.h
@@ -50,11 +50,11 @@ static inline bool isempty(const char *p
}
static inline const char *empty_to_null(const char *p) {
- return isempty(p) ? NULL : p;
+ return empty_to_null(p);
}
Let's avoid that by checking the current match position
9 lines
217 B
Plaintext
9 lines
217 B
Plaintext
@@
|
|
/* Avoid running this transformation on the empty_to_null function itself */
|
|
position p : script:python() { p[0].current_element != "empty_to_null" };
|
|
expression s;
|
|
@@
|
|
|
|
- isempty@p(s) ? NULL : s
|
|
+ empty_to_null(s)
|