Discussion:
[ast-developers] Major "clang" warnings in new vmalloc&&libast... /
Roland Mainz
2013-06-30 23:40:21 UTC
Permalink
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) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
Roland Mainz
2013-07-06 00:21:15 UTC
Permalink
Post by Roland Mainz
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.
-- snip --
warning: comparison of unsigned expression >= 0 is always true
[-Wtautological-compare]
for (i = j; i >= 0; i -= m)
~ ^ ~
1 warning generated.
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)))
^~~~~~~~~~~~~
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.
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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.
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.
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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);
^~~~~~~~~~~~
note: expanded from macro 'TRUESIZE'
#define TRUESIZE(z) ((z) & (((z)&SMALL) ? ~SMBITS : ~BITS) )
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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));
^~~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
warning: signed shift result (0xFFFF000000) requires 41 bits to
represent, but 'int' only has 32 bits [-Wshift-overflow]
oldz = TRUEBDSZ(rp);
^~~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
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) )
^~~~~~~~~~~~
note: expanded from macro 'TRUENEXT'
#define TRUENEXT(b) ((Block_t*)((b)->body.data + TRUEBDSZ(b)) )
^~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
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));
^~~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
warning: signed shift result (0xFFFF000000) requires 41 bits to
represent, but 'int' only has 32 bits [-Wshift-overflow]
{ sz = SMBDSZ(bp);
^~~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
22 warnings generated.
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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.
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...
Erm... Phong: ping! ... did you see the email about yet ?

----

Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
Glenn Fowler
2013-07-19 21:33:59 UTC
Permalink
some of these were indeed serious
thanks
Post by Roland Mainz
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.
-- snip --
warning: comparison of unsigned expression >= 0 is always true
[-Wtautological-compare]
for (i = j; i >= 0; i -= m)
~ ^ ~
1 warning generated.
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)))
^~~~~~~~~~~~~
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.
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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.
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.
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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);
^~~~~~~~~~~~
note: expanded from macro 'TRUESIZE'
#define TRUESIZE(z) ((z) & (((z)&SMALL) ? ~SMBITS : ~BITS) )
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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));
^~~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
warning: signed shift result (0xFFFF000000) requires 41 bits to
represent, but 'int' only has 32 bits [-Wshift-overflow]
oldz = TRUEBDSZ(rp);
^~~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
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) )
^~~~~~~~~~~~
note: expanded from macro 'TRUENEXT'
#define TRUENEXT(b) ((Block_t*)((b)->body.data + TRUEBDSZ(b)) )
^~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
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));
^~~~~~~~~~~~
note: expanded from macro 'TRUEBDSZ'
#define TRUEBDSZ(b) ((SIZE(b)&SMALL) ? SMBDSZ(b) : BDSZ(b))
^~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
warning: signed shift result (0xFFFF000000) requires 41 bits to
represent, but 'int' only has 32 bits [-Wshift-overflow]
{ sz = SMBDSZ(bp);
^~~~~~~~~~
note: expanded from macro 'SMBDSZ'
#define SMBDSZ(b) (SIZE(b) & ~SMBITS) /* size of small block */
^~~~~~
note: expanded from macro 'SMBITS'
#define SMBITS (BITS | SMENCODE(0xffff) ) /* bits not
related to size */
^~~~~~~~~~~~~~~~
note: expanded from macro 'SMENCODE'
#define SMENCODE(i) ((i) << 24) /* code index
of a small block */
~~~ ^ ~~
22 warnings generated.
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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)))
^~~~~~~~~~~~~
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.
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) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
Loading...