Package: libc6-dev Version: 2.3.6-15 Severity: important # if !defined __cplusplus && __GNUC_PREREQ (3, 3) # define __THROW __attribute__ ((__nothrow__)) XXXX # define __NTH(fct) __attribute__ ((__nothrow__)) fct # else # if defined __cplusplus && __GNUC_PREREQ (2,8) # define __THROW throw () # define __NTH(fct) fct throw () # else # define __THROW # define __NTH(fct) fct # endif # endif
The line marked with XXXX expands incorrectly: void f() __THROW ==> void f() __attribute__ ((__nothrow__)) instead of void __attribute__ ((__nothrow__)) f() The __NTH macro is OK. It's OK for later compilers, but I'm not sure this special case for GCC 3.3 is necessary, unless there's a reason why the more general throw() doesn't work with GCC 3.3? throw() is standard C++ syntax, so this looks rather broken, IMO. I suggest changing it to: # if defined __cplusplus && __GNUC_PREREQ (2,8) # define __THROW throw () # define __NTH(fct) fct throw () # else # define __THROW # define __NTH(fct) fct # endif as is the case in e.g. <malloc.h>. The version check in <malloc.h> also looks broken, though probably is OK in practice, due to GCC 1.x not being used: # ifndef __THROW # if defined __cplusplus && (__GNUC__ >= 3 || __GNUC_MINOR__ >= 8) # define __THROW throw () # else # define __THROW # endif # endif This should probably be using the __GNUC_PREREQ macro like everyone else. Regards, Roger -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (990, 'unstable') Architecture: powerpc (ppc) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16.17 Locale: LANG=en_GB.UTF8, LC_CTYPE=en_GB.UTF8 (charmap=UTF-8) Versions of packages libc6-dev depends on: ii libc6 2.3.6-15 GNU C Library: Shared libraries ii linux-kernel-headers 2.6.17.3-1 Linux Kernel Headers for developme Versions of packages libc6-dev recommends: ii bcc [c-compiler] 0.16.14-1.4 16-bit x86 C compiler ii gcc [c-compiler] 4:4.1.1-3 The GNU C compiler ii gcc-3.3 [c-compiler] 1:3.3.6-13 The GNU C compiler ii gcc-3.4 [c-compiler] 3.4.6-2 The GNU C compiler ii gcc-4.0 [c-compiler] 4.0.3-4 The GNU C compiler ii gcc-4.1 [c-compiler] 4.1.1-7 The GNU C compiler -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]