[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#749141: Parameter declarations of function cdindex_encode64 differ in signedness



Package: libcdaudio
Version: 0.99.12p2-13
Severity: wishlist
Usertags: goto-cc

During a rebuild of all packages in a clean sid chroot (and cowbuilder+pbuilder)
the build failed with the following error. Please note that we use our research
compiler tool-chain (using tools from the cbmc package), which permits extended
reporting on type inconsistencies at link time.

[...]
libtool: link: gcc -shared  -fPIC -DPIC  .libs/cddb.o .libs/cdindex.o .libs/coverart.o .libs/data.o .libs/changer.o .libs/base64.o .libs/extra_objs.o .libs/cdaudio.o    -O2 -Wl,-z -Wl,relro   -Wl,-soname -Wl,libcdaudio.so.1 -o .libs/libcdaudio.so.1.0.0

error: conflicting function declarations "cdindex_encode64"
old definition in module cdindex file cdindex.c line 49
signed int (char *, char *, signed int, signed int)
new definition in module base64 file base64.c line 151
signed int (unsigned char *outbuffer, unsigned char *inbuffer, signed int inlen, signed int outlen)
Makefile:658: recipe for target 'libcdaudio.la' failed
make[3]: *** [libcdaudio.la] Error 64
make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-libcdaudio/libcdaudio-0.99.12p2/src'
Makefile:509: recipe for target 'all-recursive' failed

Reviewing the code, the difference in signedness of parameters outbuffer and
inbuffer may be harmless here, but using the linker to perform implicit type
casts is certainly not a good idea. Instead, the declaration and definition
should match and explicit type casts be used to enable proper compiler
diagnostics.

Best,
Michael

Attachment: pgp_9KB8vqPKA.pgp
Description: PGP signature


Reply to: