From e363b0e4fc4f32225034a11dd53c0cc68747ba6e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 15 Jan 2021 18:00:14 +0100 Subject: [PATCH] systemctl: avoid warning about signed-unsigned compare on 32 bits MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ../src/systemctl/systemctl-list-units.c: In function ‘output_units_list’: ../src/systemctl/systemctl-list-units.c:112:75: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare] 112 | for (const UnitInfo *u = unit_infos; unit_infos && u - unit_infos < c; u++) { | ^ The pointer difference is signed. I don't know why gcc warns on 32bits, but not otherwise. gcc-10.2.1-9.fc33.x86_64, -m32 --- src/systemctl/systemctl-list-units.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/systemctl/systemctl-list-units.c b/src/systemctl/systemctl-list-units.c index c7a91ba4f80..cf6ad4a95fe 100644 --- a/src/systemctl/systemctl-list-units.c +++ b/src/systemctl/systemctl-list-units.c @@ -109,7 +109,7 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) { (void) table_set_empty_string(table, "-"); - for (const UnitInfo *u = unit_infos; unit_infos && u - unit_infos < c; u++) { + for (const UnitInfo *u = unit_infos; unit_infos && (unsigned)(u - unit_infos) < c; u++) { _cleanup_free_ char *j = NULL; const char *on_underline = "", *on_loaded = "", *on_active = ""; const char *on_circle = "", *id; -- 2.47.3