From: Zbigniew Jędrzejewski-Szmek Date: Fri, 15 Jan 2021 17:00:14 +0000 (+0100) Subject: systemctl: avoid warning about signed-unsigned compare on 32 bits X-Git-Tag: v248-rc1~328^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e363b0e4fc4f32225034a11dd53c0cc68747ba6e;p=thirdparty%2Fsystemd.git systemctl: avoid warning about signed-unsigned compare on 32 bits ../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 --- 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;