]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: avoid warning about signed-unsigned compare on 32 bits
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 15 Jan 2021 17:00:14 +0000 (18:00 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 15 Jan 2021 17:35:02 +0000 (18:35 +0100)
../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

index c7a91ba4f80df75b14a4c00d2453c52aeb95eea3..cf6ad4a95fe91bc852e17d4a33d8edea4beb4859 100644 (file)
@@ -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;