tag 377416 + moreinfo thanks On Sat, Jul 08, 2006 at 08:14:35PM +0100, Roger Leigh wrote: > 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()
I'm not sure to understand where the problem is.
__THROW is meant to be used like this, in a prototype decl:
void f(void) __TROW;
but not in a function implementation :
void f(void) __THROW {
// some impl
}
the former is completely correct and will work as expected. I've not
found an example of a problem caused by that macro, but IMHO it's a
problem in the code you are trying to compile, not because of the macro.
--
·O· Pierre Habouzit
··O [EMAIL PROTECTED]
OOO http://www.madism.org
pgpYNzCGwIVDU.pgp
Description: PGP signature

