Module Name: src Committed By: apb Date: Fri Oct 25 08:51:55 UTC 2013
Modified Files: src/sys/sys: cdefs.h Log Message: Add __diagused and __debugused. These are for marking variables that are used only in diagnotic or debug code, but unused when NDEBUG is defined, or DIAGNOSTIC is not defined, or DEBUG is not defined. To generate a diff of this commit: cvs rdiff -u -r1.114 -r1.115 src/sys/sys/cdefs.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/sys/cdefs.h diff -u src/sys/sys/cdefs.h:1.114 src/sys/sys/cdefs.h:1.115 --- src/sys/sys/cdefs.h:1.114 Fri Oct 25 08:47:30 2013 +++ src/sys/sys/cdefs.h Fri Oct 25 08:51:55 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: cdefs.h,v 1.114 2013/10/25 08:47:30 apb Exp $ */ +/* $NetBSD: cdefs.h,v 1.115 2013/10/25 08:51:55 apb Exp $ */ /* * Copyright (c) 1991, 1993 @@ -271,6 +271,44 @@ #define __used __unused #endif +/* + * __diagused: Note that variable is used in diagnostic code, but may be + * unused in non-diagnostic code. + * + * In the kernel, variables that are used when DIAGNOSTIC is defined, + * but unused when DIAGNOSTIC is not defined, may be declared with + * __diagused. In userland, variables that are used when NDEBUG is not + * defined, but unused when NDEBUG is defined, may be declared with + * __diagused. + * + * Variables used only in assert(3) or KASSERT(9) macros are likely + * candidates for being declared with __diagused. + */ +#if (defined(_KERNEL) && defined(DIAGNOSTIC)) \ + || (!defined(_KERNEL) && !defined(NDEBUG)) +#define __diagused /* empty */ +#else +#define __diagused __unused +#endif + +/* + * __debugused: Note that variable is used in debug code, but may be + * unused in non-debug code. + * + * In either the kernel or userland, variables that are used when DEBUG + * is defined, but unused when DEBUG is not defined, may be declared with + * __debugused. + * + * In the kernel, variables used only in KDASSERT(9) macros are likely + * candidates for being declared with __debugused. There is no + * established convention for the use of DEBUG in userland code. + */ +#if defined(DEBUG) +#define __debugused /* empty */ +#else +#define __debugused __unused +#endif + #if __GNUC_PREREQ__(3, 1) #define __noprofile __attribute__((__no_instrument_function__)) #else