some of these were indeed serious
thanks

On Mon, 1 Jul 2013 01:40:21 +0200 Roland Mainz wrote:
> 2013/6/28 Glenn Fowler <[email protected]>:
> >
> > the AT&T Software Technology ast alpha 2013-06-28 source release
> > has been posted to the download site
> >         http://www.research.att.com/sw/download/alpha/
> > the package names and md5 checksums are
> >             INIT  eddbf89d061348519d86f2618b708a94
> >         ast-base  a745a7d4ce6f53c2e4134af4cc835ff7
> >         ast-open  fdb74839ff041e34c800c333188a050e
> >          ast-ksh  8f22428cf30af7146bd210664c2fd166
> > the md5 sums should match the ones listed on the download page

> Below are some warnings (mostly from the new vmalloc+aso+one from
> strsort.c) from the "clang" compiler building ast-ksh.2013-06-28 on
> SuSE 12.3/AMD64/64bit.

> Note that some of them look like *serious* troublemakers:
> -- snip --
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/string/strsort.c:75:18:
> warning: comparison of unsigned expression >= 0 is always true
> [-Wtautological-compare]
>                         for (i = j; i >= 0; i -= m)
>                                     ~ ^  ~
> 1 warning generated.
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/string/fmtbuf.c:64:11:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'char *' [-Wint-conversion]
>         } while (asocasptr(&nxt, cur, tst + n) != cur);
>                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/string/fmtbuf.c:64:11:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'char *' [-Wint-conversion]
>         } while (asocasptr(&nxt, cur, tst + n) != cur);
>                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> 2 warnings generated.
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/cdt/dtrehash.c:191:2:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Dtlink_t *' (aka 'struct
> _dtlink_s *') [-Wint-conversion]
>         asocasptr(lnkp, lnk, NIL(Dtlink_t*) );
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/cdt/dtrehash.c:191:2:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Dtlink_t *' (aka 'struct
> _dtlink_s *') [-Wint-conversion]
>         asocasptr(lnkp, lnk, NIL(Dtlink_t*) );
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/cdt/dtrehash.c:703:3:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Dtlink_t *' (aka 'struct
> _dtlink_s *') [-Wint-conversion]
>                 asocasptr(tbl->list+hshp, opnt->pobj, (Dtlink_t*)opnt);
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/cdt/dtrehash.c:703:3:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Dtlink_t *' (aka 'struct
> _dtlink_s *') [-Wint-conversion]
>                 asocasptr(tbl->list+hshp, opnt->pobj, (Dtlink_t*)opnt);
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/cdt/dtrehash.c:711:3:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Dtlink_t *' (aka 'struct
> _dtlink_s *') [-Wint-conversion]
>                 asocasptr(lnkp, NIL(Dtlink_t*), lnk);
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/cdt/dtrehash.c:711:3:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Dtlink_t *' (aka 'struct
> _dtlink_s *') [-Wint-conversion]
>                 asocasptr(lnkp, NIL(Dtlink_t*), lnk);
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> 6 warnings generated.
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/sfio/sfmode.c:408:45:
> warning: comparison of constant 4096 with expression of type 'unsigned
> char' is always false [-Wtautological-constant-out-of-range-compare]
>                 if((f->bits&SF_MMAP) && (f->tiny[0] += 1) >= (4*SF_NMAP) )
>                                         ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~
> 1 warning generated.
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:263:6:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                 if(asocasptr(listp, head, blk) == head )
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:263:6:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                 if(asocasptr(listp, head, blk) == head )
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:268:54:
> warning: signed shift result (0xFFFF000000) requires 41 bits to
> represent, but 'int' only has 32 bits [-Wshift-overflow]
>                 (*_Vmtrace)(vm, (Vmuchar_t*)data, NIL(Vmuchar_t*),
> TRUESIZE(sz) , 0);
>                                                                    
> ^~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:315:44:
> note: expanded from macro 'TRUESIZE'
> #define TRUESIZE(z)     ((z) & (((z)&SMALL) ? ~SMBITS : ~BITS) )
>                                                ^~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:312:25:
> note: expanded from macro 'SMBITS'
> #define SMBITS          (BITS | SMENCODE(0xffff) )      /* bits not
> related to size     */
>                                 ^~~~~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:310:26:
> note: expanded from macro 'SMENCODE'
> #define SMENCODE(i)     ((i) << 24)                     /* code index
> of a small block  */
>                          ~~~ ^  ~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:281:13:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>         if((pack = asocasptr(&best->pack[ppos], NIL(Pack_t*),
> PK_INITIALIZING)) != NIL(Pack_t*) )
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:281:13:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>         if((pack = asocasptr(&best->pack[ppos], NIL(Pack_t*),
> PK_INITIALIZING)) != NIL(Pack_t*) )
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:297:3:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>                 asocasptr(&best->pack[ppos], PK_INITIALIZING, NIL(Pack_t*));
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:297:3:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>                 asocasptr(&best->pack[ppos], PK_INITIALIZING, NIL(Pack_t*));
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:326:2:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>         asocasptr(&best->list[lpos], NIL(Pack_t*), pack);
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:326:2:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>         asocasptr(&best->list[lpos], NIL(Pack_t*), pack);
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:329:2:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>         asocasptr(&best->pack[ppos], PK_INITIALIZING, pack);
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:329:2:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Pack_t *' (aka 'struct
> _pack_s *') [-Wint-conversion]
>         asocasptr(&best->pack[ppos], PK_INITIALIZING, pack);
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:465:6:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                 if(asocasptr(listp, list, NIL(Block_t*)) == list)
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:465:6:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                 if(asocasptr(listp, list, NIL(Block_t*)) == list)
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:675:30:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                 if(!(blk = small->free) || asocasptr(&small->free,
> blk, LINK(blk)) == blk )

> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:675:30:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                 if(!(blk = small->free) || asocasptr(&small->free,
> blk, LINK(blk)) == blk )

> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:696:8:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                                 if(asocasptr(&small->free, head, list) == 
> head)
>                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:696:8:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Block_t *' (aka 'struct
> _block_s *') [-Wint-conversion]
>                                 if(asocasptr(&small->free, head, list) == 
> head)
>                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:788:29:
> warning: signed shift result (0xFFFF000000) requires 41 bits to
> represent, but 'int' only has 32 bits [-Wshift-overflow]
>                         memset((Void_t*)rsdt, 0, TRUEBDSZ(rp));
>                                                  ^~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:316:40:
> note: expanded from macro 'TRUEBDSZ'
> #define TRUEBDSZ(b)     ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
>                                            ^~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:314:31:
> note: expanded from macro 'SMBDSZ'
> #define SMBDSZ(b)       (SIZE(b) & ~SMBITS) /* size of small block      */
>                                     ^~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:312:25:
> note: expanded from macro 'SMBITS'
> #define SMBITS          (BITS | SMENCODE(0xffff) )      /* bits not
> related to size     */
>                                 ^~~~~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:310:26:
> note: expanded from macro 'SMENCODE'
> #define SMENCODE(i)     ((i) << 24)                     /* code index
> of a small block  */
>                          ~~~ ^  ~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:803:9:
> warning: signed shift result (0xFFFF000000) requires 41 bits to
> represent, but 'int' only has 32 bits [-Wshift-overflow]
>         oldz = TRUEBDSZ(rp);
>                ^~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:316:40:
> note: expanded from macro 'TRUEBDSZ'
> #define TRUEBDSZ(b)     ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
>                                            ^~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:314:31:
> note: expanded from macro 'SMBDSZ'
> #define SMBDSZ(b)       (SIZE(b) & ~SMBITS) /* size of small block      */
>                                     ^~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:312:25:
> note: expanded from macro 'SMBITS'
> #define SMBITS          (BITS | SMENCODE(0xffff) )      /* bits not
> related to size     */
>                                 ^~~~~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:310:26:
> note: expanded from macro 'SMENCODE'
> #define SMENCODE(i)     ((i) << 24)                     /* code index
> of a small block  */
>                          ~~~ ^  ~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:986:43:
> warning: signed shift result (0xFFFF000000) requires 41 bits to
> represent, but 'int' only has 32 bits [-Wshift-overflow]
>                 for(endbp = ENDB(sgb); bp < endbp; bp = TRUENEXT(bp) )
>                                                         ^~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:317:50:
> note: expanded from macro 'TRUENEXT'
> #define TRUENEXT(b)     ((Block_t*)((b)->body.data + TRUEBDSZ(b)) )
>                                                      ^~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:316:40:
> note: expanded from macro 'TRUEBDSZ'
> #define TRUEBDSZ(b)     ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
>                                            ^~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:314:31:
> note: expanded from macro 'SMBDSZ'
> #define SMBDSZ(b)       (SIZE(b) & ~SMBITS) /* size of small block      */
>                                     ^~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:312:25:
> note: expanded from macro 'SMBITS'
> #define SMBITS          (BITS | SMENCODE(0xffff) )      /* bits not
> related to size     */
>                                 ^~~~~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:310:26:
> note: expanded from macro 'SMENCODE'
> #define SMENCODE(i)     ((i) << 24)                     /* code index
> of a small block  */
>                          ~~~ ^  ~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:991:9:
> warning: signed shift result (0xFFFF000000) requires 41 bits to
> represent, but 'int' only has 32 bits [-Wshift-overflow]
>                         sz = TRUEBDSZ(bp); /**/DEBUG_ASSERT(sz < BDSZ(sgb));
>                              ^~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:316:40:
> note: expanded from macro 'TRUEBDSZ'
> #define TRUEBDSZ(b)     ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
>                                            ^~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:314:31:
> note: expanded from macro 'SMBDSZ'
> #define SMBDSZ(b)       (SIZE(b) & ~SMBITS) /* size of small block      */
>                                     ^~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:312:25:
> note: expanded from macro 'SMBITS'
> #define SMBITS          (BITS | SMENCODE(0xffff) )      /* bits not
> related to size     */
>                                 ^~~~~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:310:26:
> note: expanded from macro 'SMENCODE'
> #define SMENCODE(i)     ((i) << 24)                     /* code index
> of a small block  */
>                          ~~~ ^  ~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmbest.c:1024:11:
> warning: signed shift result (0xFFFF000000) requires 41 bits to
> represent, but 'int' only has 32 bits [-Wshift-overflow]
>                         {       sz = SMBDSZ(bp);
>                                      ^~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:314:31:
> note: expanded from macro 'SMBDSZ'
> #define SMBDSZ(b)       (SIZE(b) & ~SMBITS) /* size of small block      */
>                                     ^~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:312:25:
> note: expanded from macro 'SMBITS'
> #define SMBITS          (BITS | SMENCODE(0xffff) )      /* bits not
> related to size     */
>                                 ^~~~~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmhdr.h:310:26:
> note: expanded from macro 'SMENCODE'
> #define SMENCODE(i)     ((i) << 24)                     /* code index
> of a small block  */
>                          ~~~ ^  ~~
> 22 warnings generated.
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmdebug.c:388:8:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Free_t *' (aka 'struct
> _free_s *') [-Wint-conversion]
>                         if (asocasptr(&vm->data->delay, list, item) ==
> (void*)list)
>                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmdebug.c:388:8:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Free_t *' (aka 'struct
> _free_s *') [-Wint-conversion]
>                         if (asocasptr(&vm->data->delay, list, item) ==
> (void*)list)
>                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmdebug.c:420:51:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Free_t *' (aka 'struct
> _free_s *') [-Wint-conversion]
>                 if(!list && (rv || !(list = vm->data->delay) ||
> asocasptr(&vm->data->delay, list, NIL(Free_t*)) != list))

> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:64: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

> ^~~~~~~~~~~~~
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmdebug.c:420:51:
> warning: incompatible integer to pointer conversion passing 'uint64_t'
> (aka 'unsigned long') to parameter of type 'Free_t *' (aka 'struct
> _free_s *') [-Wint-conversion]
>                 if(!list && (rv || !(list = vm->data->delay) ||
> asocasptr(&vm->data->delay, list, NIL(Free_t*)) != list))

> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./ast_aso.h:92:78: note: expanded from macro 'asocasptr'
> #define asocasptr(p,o,n)
> ((__V_*)__sync_val_compare_and_swap(p,(uint64_t)(o),(uint64_t)(n)))

>              ^~~~~~~~~~~~~
> 4 warnings generated.
> /home/test001/work/ast_ksh_20130628/build_i386_64bit_opt_patched_clang/src/lib/libast/vmalloc/vmtrace.c:125:14:
> warning: comparison of unsigned expression >= 0 is always true
> [-Wtautological-compare]
>         if(threadid >= 0)
>            ~~~~~~~~ ^  ~
> 1 warning generated.
> -- snip --

> AFAIK most disturbing are the issues with "[-Wshift-overflow]"
> followed by the usual "[-Wtautological-compare]" issues...

> ----

> Bye,
> Roland

> -- 
>   __ .  . __
>  (o.\ \/ /.o) [email protected]
>   \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
>   /O /==\ O\  TEL +49 641 3992797
>  (;O/ \/ \O;)

_______________________________________________
ast-developers mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to