The THROW macro is defined to be "throw ()" if the source is being compiled with a C++ compiler, else (for plain C) it expands to nothing. The THROW macro is defined in sys/cdefs.h thus:
36: # if defined __cplusplus && (__GNUC__ >= 3 || __GNUC_MINOR__ >= 8)
37: # define __THROW throw ()
38: # else
39: # define __THROW
40: # endif
__attribute_malloc__ will probably expand to a
gcc specific "__attribute__" setting. It will be #defined somewhere in /usr/include/sys probably. See
http://gcc.gnu.org/onlinedocs/gcc-4....tribute-Syntax
I don't know what that __wur is about! Try grepping for it in /usr/include/sys :-)
HTH,
-nick