Eliminate 4 build-time warnings in timecheck.c.
authorJames E Keenan <jkeenan@cpan.org>
Tue, 27 Nov 2018 21:12:45 +0000 (16:12 -0500)
committerJames E Keenan <jkeenan@cpan.org>
Fri, 7 Dec 2018 23:09:23 +0000 (23:09 +0000)
This commit suppresses output like this:

[Porting] 758 $ cc -O -o timecheck timecheck.c
timecheck.c: In function ‘gm_check’:
timecheck.c:37:36: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘int’ [-Wformat=]
      fprintf (stderr, "%3d:%s: %12ld-%02d-%02d %02d:%02d:%02d\n",
                                ~~~~^
                                %12d
timecheck.c:39:3:
   tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
   ~~~~~~~~~~~~~~~~~~~
timecheck.c: In function ‘lt_check’:
timecheck.c:89:36: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘int’ [-Wformat=]
      fprintf (stderr, "%3d:%s: %12ld-%02d-%02d %02d:%02d:%02d\n",
                                ~~~~^
                                %12d
timecheck.c:91:3:
   tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
   ~~~~~~~~~~~~~~~~~~~
timecheck.c: In function ‘main’:
timecheck.c:130:21: warning: implicit declaration of function ‘strcmp’ [-Wimplicit-function-declaration]
     if (argc > 1 && strcmp (argv[1], "-v") == 0) opt_v++;
                     ^~~~~~
timecheck.c:139:32: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘int’ [-Wformat=]
     printf ("Sizeof time_t = %ld\n", (i = sizeof (time_t)));
                              ~~^     ~~~~~~~~~~~~~~~~~~~~~
                              %d

Porting/timecheck.c

index cf0303a..e9e7441 100644 (file)
@@ -7,6 +7,7 @@
 #include <time.h>
 #include <errno.h>
 #include <values.h>
+#include <string.h>
 
 int opt_v = 0;
 int i;
@@ -36,7 +37,7 @@ void gm_check (time_t t, int min_year, int max_year)
        if (opt_v)
            fprintf (stderr, "%3d:%s: %12ld-%02d-%02d %02d:%02d:%02d\n",
                i, hex (t),
-               tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
+               (long)(tmp->tm_year) + 1900, tmp->tm_mon + 1, tmp->tm_mday,
                tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
        pt = t;
        }
@@ -88,7 +89,7 @@ void lt_check (time_t t, int min_year, int max_year)
        if (opt_v)
            fprintf (stderr, "%3d:%s: %12ld-%02d-%02d %02d:%02d:%02d\n",
                i, hex (t),
-               tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
+               (long)(tmp->tm_year) + 1900, tmp->tm_mon + 1, tmp->tm_mday,
                tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
        pt = t;
        }
@@ -136,7 +137,7 @@ int main (int argc, char *argv[])
 
     opt_v++;
     printf ("======================\n");
-    printf ("Sizeof time_t = %ld\n", (i = sizeof (time_t)));
+    printf ("Sizeof time_t = %ld\n", (long)(i = sizeof (time_t)));
     printf ("gmtime () boundaries:\n");
     gm_check (gm_max,    69, 0x7fffffff);
     gm_check (gm_min, -1900,         70);