Package: mtools
Version: 4.0.18-1
Severity: wishlist
Usertags: goto-cc

During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and 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.

gcc -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -DSYSCONFDIR=\"/etc\" -DCPU_x86_64 
-DVENDOR_pc -DOS_linux_gnu -g -O2 -fstack-protector --param=ssp-buffer-size=4 
-Wformat -Werror=format-security -Wall -fno-strict-aliasing -I.  -I.  -c 
mainloop.c

file mainloop.c line 89: syntax error before `;'
PARSING ERROR
Makefile:155: recipe for target 'mainloop.o' failed
make[1]: *** [mainloop.o] Error 64
make[1]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-mtools/mtools-4.0.18'
dh_auto_build: make -j1 returned exit code 2
debian/rules:11: recipe for target 'build' failed
make: *** [build] Error 2

It seems that GCC accepts the following, but also Clang refuses this mildly
weird bit of C:

int unix_loop(Stream_t *Stream __attribute__ ((unused));Stream_t *Stream, 
MainParam_t *mp, char *arg,
                     int follow_dir_link);


syntax.c:49:56: error: expected ')'
int unix_loop(Stream_t *Stream __attribute__ ((unused));Stream_t *Stream, 
MainParam_t *mp, char *arg,
                                                       ^
syntax.c:49:14: note: to match this '('
int unix_loop(Stream_t *Stream __attribute__ ((unused));Stream_t *Stream, 
MainParam_t *mp, char *arg,
             ^

The code results from

http://sources.debian.net/src/mtools/4.0.18-1/sysincludes.h?hl=106#L106

applied here:

http://sources.debian.net/src/mtools/4.0.18-1/mainloop.c?hl=98#L98

Maybe this should have been UNUSEDP? Else it would be nice to declare a variant,
say UNUSED_ARG, which does not introduce a semicolon.

Best,
Michael

Attachment: pgpWz_fK4jFhn.pgp
Description: PGP signature

Reply via email to