summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--coccinelle/bool-cast.cocci12
-rwxr-xr-xcoccinelle/run-coccinelle.sh10
-rw-r--r--src/analyze/analyze.c4
-rw-r--r--src/basic/btrfs-util.c2
-rw-r--r--src/basic/format-table.c2
-rw-r--r--src/basic/parse-util.c2
-rw-r--r--src/basic/verbs.c2
-rw-r--r--src/basic/virt.c2
-rw-r--r--src/busctl/busctl.c10
-rw-r--r--src/core/dbus-execute.c2
-rw-r--r--src/core/namespace.c2
-rw-r--r--src/core/service.c2
-rw-r--r--src/core/shutdown.c2
-rw-r--r--src/journal/journald-stream.c8
-rw-r--r--src/login/logind-dbus.c4
-rw-r--r--src/network/networkd-dhcp6.c2
-rw-r--r--src/shared/bus-util.c6
-rw-r--r--src/shared/condition.c2
-rw-r--r--src/shared/conf-parser.c2
-rw-r--r--src/test/test-alloc-util.c21
-rw-r--r--src/timedate/timedatectl.c2
21 files changed, 70 insertions, 31 deletions
diff --git a/coccinelle/bool-cast.cocci b/coccinelle/bool-cast.cocci
new file mode 100644
index 0000000000..051ccb9417
--- /dev/null
+++ b/coccinelle/bool-cast.cocci
@@ -0,0 +1,12 @@
+@@
+bool b;
+expression y;
+@@
+- b = !!(y);
++ b = y;
+@@
+bool b;
+expression y;
+@@
+- b = !!y;
++ b = y;
diff --git a/coccinelle/run-coccinelle.sh b/coccinelle/run-coccinelle.sh
index a18da58a3e..22ab66d3dd 100755
--- a/coccinelle/run-coccinelle.sh
+++ b/coccinelle/run-coccinelle.sh
@@ -11,11 +11,17 @@ case "$1" in
;;
esac
+if ! parallel -h >/dev/null; then
+ echo 'Please install GNU parallel (package "parallel")'
+ exit 1
+fi
+
for SCRIPT in ${@-$top/coccinelle/*.cocci} ; do
echo "--x-- Processing $SCRIPT --x--"
TMPFILE=`mktemp`
echo "+ spatch --sp-file $SCRIPT $args ..."
- spatch --sp-file $SCRIPT $args $files 2>"$TMPFILE" || cat "$TMPFILE"
- rm "$TMPFILE"
+ parallel --halt now,fail=1 --keep-order --noswap --max-args=20 \
+ spatch --sp-file $SCRIPT $args ::: $files \
+ 2>"$TMPFILE" || cat "$TMPFILE"
echo -e "--x-- Processed $SCRIPT --x--\n"
done
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
index 8695e7a1d2..906ddfbc28 100644
--- a/src/analyze/analyze.c
+++ b/src/analyze/analyze.c
@@ -1833,7 +1833,7 @@ static int parse_argv(int argc, char *argv[]) {
return -EINVAL;
}
- arg_man = !!r;
+ arg_man = r;
} else
arg_man = true;
@@ -1847,7 +1847,7 @@ static int parse_argv(int argc, char *argv[]) {
return -EINVAL;
}
- arg_generators = !!r;
+ arg_generators = r;
} else
arg_generators = true;
diff --git a/src/basic/btrfs-util.c b/src/basic/btrfs-util.c
index 32a022f7ce..b325090ed9 100644
--- a/src/basic/btrfs-util.c
+++ b/src/basic/btrfs-util.c
@@ -500,7 +500,7 @@ int btrfs_subvol_get_info_fd(int fd, uint64_t subvol_id, BtrfsSubvolInfo *ret) {
(usec_t) le32toh(ri->otime.nsec) / NSEC_PER_USEC;
ret->subvol_id = subvol_id;
- ret->read_only = !!(le64toh(ri->flags) & BTRFS_ROOT_SUBVOL_RDONLY);
+ ret->read_only = le64toh(ri->flags) & BTRFS_ROOT_SUBVOL_RDONLY;
assert_cc(sizeof(ri->uuid) == sizeof(ret->uuid));
memcpy(&ret->uuid, ri->uuid, sizeof(ret->uuid));
diff --git a/src/basic/format-table.c b/src/basic/format-table.c
index ad89556ee2..94e796d1ca 100644
--- a/src/basic/format-table.c
+++ b/src/basic/format-table.c
@@ -572,7 +572,7 @@ int table_add_many_internal(Table *t, TableDataType first_type, ...) {
break;
case TABLE_BOOLEAN:
- buffer.b = !!va_arg(ap, int);
+ buffer.b = va_arg(ap, int);
data = &buffer.b;
break;
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
index b25bc6e215..33698b06da 100644
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
@@ -662,7 +662,7 @@ int parse_permille_unbounded(const char *p) {
r = safe_atoi(n, &v);
if (r < 0)
return r;
- if (v > ((INT_MAX - q) / 10))
+ if (v > (INT_MAX - q) / 10)
return -ERANGE;
v = v * 10 + q;
diff --git a/src/basic/verbs.c b/src/basic/verbs.c
index 58076ac07c..057e35dcd0 100644
--- a/src/basic/verbs.c
+++ b/src/basic/verbs.c
@@ -81,7 +81,7 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
if (name)
found = streq(name, verbs[i].verb);
else
- found = !!(verbs[i].flags & VERB_DEFAULT);
+ found = verbs[i].flags & VERB_DEFAULT;
if (found) {
verb = &verbs[i];
diff --git a/src/basic/virt.c b/src/basic/virt.c
index 9da5feca6c..0ebccd4ebb 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -56,7 +56,7 @@ static int detect_vm_cpuid(void) {
if (__get_cpuid(1, &eax, &ebx, &ecx, &edx) == 0)
return VIRTUALIZATION_NONE;
- hypervisor = !!(ecx & 0x80000000U);
+ hypervisor = ecx & 0x80000000U;
if (hypervisor) {
union {
diff --git a/src/busctl/busctl.c b/src/busctl/busctl.c
index 5c65147cac..d6844057d3 100644
--- a/src/busctl/busctl.c
+++ b/src/busctl/busctl.c
@@ -1972,7 +1972,7 @@ static int parse_argv(int argc, char *argv[]) {
return r;
}
- arg_expect_reply = !!r;
+ arg_expect_reply = r;
break;
case ARG_AUTO_START:
@@ -1982,7 +1982,7 @@ static int parse_argv(int argc, char *argv[]) {
return r;
}
- arg_auto_start = !!r;
+ arg_auto_start = r;
break;
case ARG_ALLOW_INTERACTIVE_AUTHORIZATION:
@@ -1992,7 +1992,7 @@ static int parse_argv(int argc, char *argv[]) {
return r;
}
- arg_allow_interactive_authorization = !!r;
+ arg_allow_interactive_authorization = r;
break;
case ARG_TIMEOUT:
@@ -2011,7 +2011,7 @@ static int parse_argv(int argc, char *argv[]) {
return r;
}
- arg_augment_creds = !!r;
+ arg_augment_creds = r;
break;
case ARG_WATCH_BIND:
@@ -2021,7 +2021,7 @@ static int parse_argv(int argc, char *argv[]) {
return r;
}
- arg_watch_bind = !!r;
+ arg_watch_bind = r;
break;
case '?':
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
index 747b9d8eeb..52d0487c93 100644
--- a/src/core/dbus-execute.c
+++ b/src/core/dbus-execute.c
@@ -563,7 +563,7 @@ static int property_get_bind_paths(
assert(property);
assert(reply);
- ro = !!strstr(property, "ReadOnly");
+ ro = strstr(property, "ReadOnly");
r = sd_bus_message_open_container(reply, 'a', "(ssbt)");
if (r < 0)
diff --git a/src/core/namespace.c b/src/core/namespace.c
index 2523c2a47f..bb19e18e43 100644
--- a/src/core/namespace.c
+++ b/src/core/namespace.c
@@ -322,7 +322,7 @@ static int append_tmpfs_mounts(MountEntry **p, const TemporaryFileSystem *tmpfs,
if (r < 0)
return r;
- ro = !!(flags & MS_RDONLY);
+ ro = flags & MS_RDONLY;
if (ro)
flags ^= MS_RDONLY;
}
diff --git a/src/core/service.c b/src/core/service.c
index 33fd36f8a7..824d283f34 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -3215,7 +3215,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
* The PID file might actually be created by a START_POST
* script. In that case don't worry if the loading fails. */
- has_start_post = !!s->exec_command[SERVICE_EXEC_START_POST];
+ has_start_post = s->exec_command[SERVICE_EXEC_START_POST];
r = service_load_pid_file(s, !has_start_post);
if (!has_start_post && r < 0) {
r = service_demand_pid_file(s);
diff --git a/src/core/shutdown.c b/src/core/shutdown.c
index 63fd4c8da1..ffd80d7876 100644
--- a/src/core/shutdown.c
+++ b/src/core/shutdown.c
@@ -302,7 +302,7 @@ int main(int argc, char *argv[]) {
(void) cg_get_root_path(&cgroup);
in_container = detect_container() > 0;
- use_watchdog = !!getenv("WATCHDOG_USEC");
+ use_watchdog = getenv("WATCHDOG_USEC");
watchdog_device = getenv("WATCHDOG_DEVICE");
if (watchdog_device) {
r = watchdog_set_device(watchdog_device);
diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c
index 4975aba016..5cf9f40c20 100644
--- a/src/journal/journald-stream.c
+++ b/src/journal/journald-stream.c
@@ -378,7 +378,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
return -EINVAL;
}
- s->level_prefix = !!r;
+ s->level_prefix = r;
s->state = STDOUT_STREAM_FORWARD_TO_SYSLOG;
return 0;
@@ -389,7 +389,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
return -EINVAL;
}
- s->forward_to_syslog = !!r;
+ s->forward_to_syslog = r;
s->state = STDOUT_STREAM_FORWARD_TO_KMSG;
return 0;
@@ -400,7 +400,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
return -EINVAL;
}
- s->forward_to_kmsg = !!r;
+ s->forward_to_kmsg = r;
s->state = STDOUT_STREAM_FORWARD_TO_CONSOLE;
return 0;
@@ -411,7 +411,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
return -EINVAL;
}
- s->forward_to_console = !!r;
+ s->forward_to_console = r;
s->state = STDOUT_STREAM_RUNNING;
/* Try to save the stream, so that journald can be restarted and we can recover */
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 3fe38c0527..21fdc0912d 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -242,9 +242,9 @@ static int property_get_preparing(
assert(m);
if (streq(property, "PreparingForShutdown"))
- b = !!(m->action_what & INHIBIT_SHUTDOWN);
+ b = m->action_what & INHIBIT_SHUTDOWN;
else
- b = !!(m->action_what & INHIBIT_SLEEP);
+ b = m->action_what & INHIBIT_SLEEP;
return sd_bus_message_append(reply, "b", b);
}
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index e9db977036..3f8346fee8 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -406,7 +406,7 @@ int dhcp6_request_address(Link *link, int ir) {
if (r < 0)
return r;
else
- running = !!r;
+ running = r;
if (running) {
r = sd_dhcp6_client_get_information_request(link->dhcp6_client, &inf_req);
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index bae419d63b..ddbc9d934e 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -1090,9 +1090,9 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, unsigne
return r;
if (flags & BUS_MAP_BOOLEAN_AS_BOOL)
- * (bool*) userdata = !!b;
+ *(bool*) userdata = b;
else
- * (int*) userdata = b;
+ *(int*) userdata = b;
return 0;
}
@@ -1403,7 +1403,7 @@ int bus_property_set_bool(
if (r < 0)
return r;
- *(bool *) userdata = !!b;
+ *(bool*) userdata = b;
return 0;
}
diff --git a/src/shared/condition.c b/src/shared/condition.c
index a41a782664..18ab1f89f9 100644
--- a/src/shared/condition.c
+++ b/src/shared/condition.c
@@ -103,7 +103,7 @@ static int condition_test_kernel_command_line(Condition *c) {
if (r < 0)
return r;
- equal = !!strchr(c->parameter, '=');
+ equal = strchr(c->parameter, '=');
for (p = line;;) {
_cleanup_free_ char *word = NULL;
diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
index 4a41b814ae..b1250850d5 100644
--- a/src/shared/conf-parser.c
+++ b/src/shared/conf-parser.c
@@ -632,7 +632,7 @@ int config_parse_bool(const char* unit,
return fatal ? -ENOEXEC : 0;
}
- *b = !!k;
+ *b = k;
return 0;
}
diff --git a/src/test/test-alloc-util.c b/src/test/test-alloc-util.c
index 578c4e2d27..549925126e 100644
--- a/src/test/test-alloc-util.c
+++ b/src/test/test-alloc-util.c
@@ -57,9 +57,30 @@ static void test_memdup_multiply_and_greedy_realloc(void) {
assert_se(p[i] == 0);
}
+static void test_bool_assign(void) {
+ bool b, c, *cp = &c, d, e, f, g, h;
+
+ b = 123;
+ *cp = -11;
+ d = 0xF & 0xFF;
+ e = b & d;
+ f = 0x0;
+ g = cp; /* cast from pointer */
+ h = NULL; /* cast from pointer */
+
+ assert(b);
+ assert(c);
+ assert(d);
+ assert(e);
+ assert(!f);
+ assert(g);
+ assert(!h);
+}
+
int main(int argc, char *argv[]) {
test_alloca();
test_memdup_multiply_and_greedy_realloc();
+ test_bool_assign();
return 0;
}
diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c
index e52a64a9c5..f412082265 100644
--- a/src/timedate/timedatectl.c
+++ b/src/timedate/timedatectl.c
@@ -477,7 +477,7 @@ static int map_ntp_message(sd_bus *bus, const char *member, sd_bus_message *m, s
memcpy(p->reference.str, d, sz);
- p->spike = !!b;
+ p->spike = b;
return 0;
}