Patchwork [U-Boot,v2,13/25] lib/zlib: sparse fixes

login
register
mail settings
Submitter Kim Phillips
Date Oct. 29, 2012, 11:34 p.m.
Message ID <1351553687-12469-14-git-send-email-kim.phillips@freescale.com>
Download mbox | patch
Permalink /patch/195154/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Kim Phillips - Oct. 29, 2012, 11:34 p.m.
define Z_NULL to (void *)0 include/u-boot/zlib.h to get rid of most of
the NULL pointer warnings.

inflate.c:942:1: warning: non-ANSI definition of function 'inflateEnd'
inflate.c:9:1: warning: non-ANSI definition of function 'inflateReset'
inflate.c:12:17: warning: Using plain integer as NULL pointer
inflate.c:12:42: warning: Using plain integer as NULL pointer
inflate.c:15:17: warning: Using plain integer as NULL pointer
inflate.c:21:19: warning: Using plain integer as NULL pointer
inflate.c:35:1: warning: non-ANSI definition of function 'inflateInit2_'
inflate.c:38:20: warning: Using plain integer as NULL pointer
inflate.c:41:17: warning: Using plain integer as NULL pointer
inflate.c:42:17: warning: Using plain integer as NULL pointer
inflate.c:50:18: warning: Using plain integer as NULL pointer
inflate.c:65:23: warning: Using plain integer as NULL pointer
inflate.c:69:21: warning: Using plain integer as NULL pointer
inflate.c:78:1: warning: non-ANSI definition of function 'inflateInit_'
inflate.c:86:1: warning: non-ANSI definition of function 'fixedtables'
inflate.c:108:26: warning: Using plain integer as NULL pointer
inflate.c:109:1: warning: non-ANSI definition of function 'updatewindow'
inflate.c:112:30: warning: Using plain integer as NULL pointer
inflate.c:339:1: warning: non-ANSI definition of function 'inflate'
inflate.c:349:17: warning: Using plain integer as NULL pointer
inflate.c:349:42: warning: Using plain integer as NULL pointer
inflate.c:350:27: warning: Using plain integer as NULL pointer
inflate.c:369:42: warning: Using plain integer as NULL pointer
inflate.c:376:32: warning: Using plain integer as NULL pointer
inflate.c:401:54: warning: Using plain integer as NULL pointer
inflate.c:419:32: warning: Using plain integer as NULL pointer
inflate.c:426:32: warning: Using plain integer as NULL pointer
inflate.c:433:32: warning: Using plain integer as NULL pointer
inflate.c:444:36: warning: Using plain integer as NULL pointer
inflate.c:449:37: warning: Using plain integer as NULL pointer
inflate.c:450:38: warning: Using plain integer as NULL pointer
inflate.c:457:40: warning: Using plain integer as NULL pointer
inflate.c:458:47: warning: Using plain integer as NULL pointer
inflate.c:480:40: warning: Using plain integer as NULL pointer
inflate.c:481:50: warning: Using plain integer as NULL pointer
inflate.c:491:37: warning: Using plain integer as NULL pointer
inflate.c:492:37: warning: Using plain integer as NULL pointer
inflate.c:501:40: warning: Using plain integer as NULL pointer
inflate.c:502:53: warning: Using plain integer as NULL pointer
inflate.c:512:37: warning: Using plain integer as NULL pointer
inflate.c:513:40: warning: Using plain integer as NULL pointer
inflate.c:525:32: warning: Using plain integer as NULL pointer
inflate.c:529:52: warning: Using plain integer as NULL pointer
inflate.c:543:54: warning: Using plain integer as NULL pointer
inflate.c:932:17: warning: Using plain integer as NULL pointer
inflate.c:932:42: warning: Using plain integer as NULL pointer
inflate.c:935:26: warning: Using plain integer as NULL pointer
inflate.c:940:19: warning: Using plain integer as NULL pointer
adler32.c:58:5: warning: non-ANSI definition of function 'adler32'
adler32.c:81:16: warning: Using plain integer as NULL pointer
zutil.c:53:9: warning: non-ANSI definition of function 'zcalloc'
zutil.c:64:9: warning: non-ANSI definition of function 'zcfree'
inffast.c:70:1: warning: non-ANSI definition of function 'inflate_fast'
inftrees.c:33:1: warning: non-ANSI definition of function 'inflate_table'

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
---
v2: added checkpatch fixes.

 include/u-boot/zlib.h |  2 +-
 lib/zlib/adler32.c    |  5 +----
 lib/zlib/inffast.c    |  5 ++---
 lib/zlib/inflate.c    | 29 ++++++++---------------------
 lib/zlib/inftrees.c   | 10 +++-------
 lib/zlib/zutil.c      | 10 ++--------
 6 files changed, 17 insertions(+), 44 deletions(-)
Wolfgang Denk - Nov. 8, 2012, 11:20 a.m.
Dear Kim Phillips,

In message <1351553687-12469-14-git-send-email-kim.phillips@freescale.com> you wrote:
> define Z_NULL to (void *)0 include/u-boot/zlib.h to get rid of most of
> the NULL pointer warnings.
...
> -#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
> +#define Z_NULL  (void *)0  /* for initializing zalloc, zfree, opaque */

Don't we have to put parens around such an expression?


> --- a/lib/zlib/adler32.c
> +++ b/lib/zlib/adler32.c
> @@ -54,10 +54,7 @@
>  #endif
>  
>  /* ========================================================================= */
> -uLong ZEXPORT adler32(adler, buf, len)
> -    uLong adler;
> -    const Bytef *buf;
> -    uInt len;
> +uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len)

Hm... this code has been imported from another project.  This
modification makes updates (or even comparing what has changed in more
recent versions) much mor difficult, or even impossible
:-(

Best regards,

Wolfgang Denk
Kim Phillips - Nov. 9, 2012, 1:06 a.m.
On Thu, 8 Nov 2012 12:20:51 +0100
Wolfgang Denk <wd@denx.de> wrote:

> In message <1351553687-12469-14-git-send-email-kim.phillips@freescale.com> you wrote:
> > define Z_NULL to (void *)0 include/u-boot/zlib.h to get rid of most of
> > the NULL pointer warnings.
> ...
> > -#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
> > +#define Z_NULL  (void *)0  /* for initializing zalloc, zfree, opaque */
> 
> Don't we have to put parens around such an expression?

I suppose.

> > --- a/lib/zlib/adler32.c
> > +++ b/lib/zlib/adler32.c
> > @@ -54,10 +54,7 @@
> >  #endif
> >  
> >  /* ========================================================================= */
> > -uLong ZEXPORT adler32(adler, buf, len)
> > -    uLong adler;
> > -    const Bytef *buf;
> > -    uInt len;
> > +uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len)
> 
> Hm... this code has been imported from another project.  This
> modification makes updates (or even comparing what has changed in more
> recent versions) much mor difficult, or even impossible
> :-(

my goal is to improve u-boot code quality by eliminating as much
sparse noise as possible - most boards use this code to decompress
kernels, so it's widely used.  E.g., this patch removes 52 lines of
sparse output.  But ok, we can revert this patch and turn off
checking for these files, in the form of an #ifndef __CHECKER__ at
the top, with an 'imported from another project' justification
comment.  Would that be better?

Kim
Tom Rini - Nov. 21, 2012, 4:37 p.m.
On Thu, Nov 08, 2012 at 07:06:31PM -0600, Kim Phillips wrote:
> On Thu, 8 Nov 2012 12:20:51 +0100
> Wolfgang Denk <wd@denx.de> wrote:
> 
> > In message <1351553687-12469-14-git-send-email-kim.phillips@freescale.com> you wrote:
> > > define Z_NULL to (void *)0 include/u-boot/zlib.h to get rid of most of
> > > the NULL pointer warnings.
> > ...
> > > -#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
> > > +#define Z_NULL  (void *)0  /* for initializing zalloc, zfree, opaque */
> > 
> > Don't we have to put parens around such an expression?
> 
> I suppose.
> 
> > > --- a/lib/zlib/adler32.c
> > > +++ b/lib/zlib/adler32.c
> > > @@ -54,10 +54,7 @@
> > >  #endif
> > >  
> > >  /* ========================================================================= */
> > > -uLong ZEXPORT adler32(adler, buf, len)
> > > -    uLong adler;
> > > -    const Bytef *buf;
> > > -    uInt len;
> > > +uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len)
> > 
> > Hm... this code has been imported from another project.  This
> > modification makes updates (or even comparing what has changed in more
> > recent versions) much mor difficult, or even impossible
> > :-(
> 
> my goal is to improve u-boot code quality by eliminating as much
> sparse noise as possible - most boards use this code to decompress
> kernels, so it's widely used.  E.g., this patch removes 52 lines of
> sparse output.  But ok, we can revert this patch and turn off
> checking for these files, in the form of an #ifndef __CHECKER__ at
> the top, with an 'imported from another project' justification
> comment.  Would that be better?

My memory could be faulty here, but can't we rely on the kernel here?
That'll give us sparse-clean zlib, or hints on how they're keeping it in
sync.

Patch

diff --git a/include/u-boot/zlib.h b/include/u-boot/zlib.h
index b611fe7..e23ceb5 100644
--- a/include/u-boot/zlib.h
+++ b/include/u-boot/zlib.h
@@ -505,7 +505,7 @@  typedef gz_header FAR *gz_headerp;
 #define Z_DEFLATED   8
 /* The deflate compression method (the only one supported in this version) */
 
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
+#define Z_NULL  (void *)0  /* for initializing zalloc, zfree, opaque */
 
                         /* basic functions */
 
diff --git a/lib/zlib/adler32.c b/lib/zlib/adler32.c
index dc9480d..b468441 100644
--- a/lib/zlib/adler32.c
+++ b/lib/zlib/adler32.c
@@ -54,10 +54,7 @@ 
 #endif
 
 /* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
-    uLong adler;
-    const Bytef *buf;
-    uInt len;
+uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len)
 {
     unsigned long sum2;
     unsigned n;
diff --git a/lib/zlib/inffast.c b/lib/zlib/inffast.c
index 38f2f90..0700e04 100644
--- a/lib/zlib/inffast.c
+++ b/lib/zlib/inffast.c
@@ -66,9 +66,8 @@ 
       requires strm->avail_out >= 258 for each loop to avoid checking for
       output space.
  */
-void inflate_fast(strm, start)
-z_streamp strm;
-unsigned start;         /* inflate()'s starting value for strm->avail_out */
+void inflate_fast(z_streamp strm, unsigned start)
+/* start: inflate()'s starting value for strm->avail_out */
 {
     struct inflate_state FAR *state;
     unsigned char FAR *in;      /* local strm->next_in */
diff --git a/lib/zlib/inflate.c b/lib/zlib/inflate.c
index 1eef609..6411c47 100644
--- a/lib/zlib/inflate.c
+++ b/lib/zlib/inflate.c
@@ -5,8 +5,7 @@ 
 local void fixedtables OF((struct inflate_state FAR *state));
 local int updatewindow OF((z_streamp strm, unsigned out));
 
-int ZEXPORT inflateReset(strm)
-z_streamp strm;
+int ZEXPORT inflateReset(z_streamp strm)
 {
     struct inflate_state FAR *state;
 
@@ -31,11 +30,8 @@  z_streamp strm;
     return Z_OK;
 }
 
-int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
-z_streamp strm;
-int windowBits;
-const char *version;
-int stream_size;
+int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, const char *version,
+			  int stream_size)
 {
     struct inflate_state FAR *state;
 
@@ -74,16 +70,12 @@  int stream_size;
     return inflateReset(strm);
 }
 
-int ZEXPORT inflateInit_(strm, version, stream_size)
-z_streamp strm;
-const char *version;
-int stream_size;
+int ZEXPORT inflateInit_(z_streamp strm, const char *version, int stream_size)
 {
     return inflateInit2_(strm, DEF_WBITS, version, stream_size);
 }
 
-local void fixedtables(state)
-struct inflate_state FAR *state;
+local void fixedtables(struct inflate_state FAR *state)
 {
     state->lencode = lenfix;
     state->lenbits = 9;
@@ -105,9 +97,7 @@  struct inflate_state FAR *state;
    output will fall in the output data, making match copies simpler and faster.
    The advantage may be dependent on the size of the processor's data caches.
  */
-local int updatewindow(strm, out)
-z_streamp strm;
-unsigned out;
+local int updatewindow(z_streamp strm, unsigned out)
 {
     struct inflate_state FAR *state;
     unsigned copy, dist;
@@ -335,9 +325,7 @@  unsigned out;
    when flush is set to Z_FINISH, inflate() cannot return Z_OK.  Instead it
    will return Z_BUF_ERROR if it has not reached the end of the stream.
  */
-int ZEXPORT inflate(strm, flush)
-z_streamp strm;
-int flush;
+int ZEXPORT inflate(z_streamp strm, int flush)
 {
     struct inflate_state FAR *state;
     unsigned char FAR *next;    /* next input */
@@ -938,8 +926,7 @@  int flush;
     return ret;
 }
 
-int ZEXPORT inflateEnd(strm)
-z_streamp strm;
+int ZEXPORT inflateEnd(z_streamp strm)
 {
     struct inflate_state FAR *state;
     if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
diff --git a/lib/zlib/inftrees.c b/lib/zlib/inftrees.c
index c6d4c03..7474a52 100644
--- a/lib/zlib/inftrees.c
+++ b/lib/zlib/inftrees.c
@@ -29,13 +29,9 @@ 
    table index bits.  It will differ if the request is greater than the
    longest code or if it is less than the shortest code.
  */
-int inflate_table(type, lens, codes, table, bits, work)
-codetype type;
-unsigned short FAR *lens;
-unsigned codes;
-code FAR * FAR *table;
-unsigned FAR *bits;
-unsigned short FAR *work;
+int inflate_table(codetype type, unsigned short FAR *lens, unsigned codes,
+		  code FAR * FAR *table, unsigned FAR *bits,
+		  unsigned short FAR *work)
 {
     unsigned len;               /* a code's length in bits */
     unsigned sym;               /* index of code symbols */
diff --git a/lib/zlib/zutil.c b/lib/zlib/zutil.c
index 65f9554..14f6eb1 100644
--- a/lib/zlib/zutil.c
+++ b/lib/zlib/zutil.c
@@ -49,10 +49,7 @@  extern voidp    calloc OF((uInt items, uInt size));
 extern void     free   OF((voidpf ptr));
 #endif
 
-voidpf zcalloc (opaque, items, size)
-	voidpf opaque;
-	unsigned items;
-	unsigned size;
+voidpf zcalloc(voidpf opaque, unsigned items, unsigned size)
 {
 	if (opaque)
 		items += size - size; /* make compiler happy */
@@ -60,10 +57,7 @@  voidpf zcalloc (opaque, items, size)
 		(voidpf)calloc(items, size);
 }
 
-void  zcfree (opaque, ptr, nb)
-	voidpf opaque;
-	voidpf ptr;
-	unsigned nb;
+void  zcfree(voidpf opaque, voidpf ptr, unsigned nb)
 {
 	free(ptr);
 	if (opaque)