Merge branch 'jc/maybe-unused'
Developer doc updates. * jc/maybe-unused: CodingGuidelines: also mention MAYBE_UNUSED
This commit is contained in:
@ -262,8 +262,9 @@ For C programs:
|
|||||||
like "error: unused parameter 'foo' [-Werror=unused-parameter]",
|
like "error: unused parameter 'foo' [-Werror=unused-parameter]",
|
||||||
which indicates that a function ignores its argument. If the unused
|
which indicates that a function ignores its argument. If the unused
|
||||||
parameter can't be removed (e.g., because the function is used as a
|
parameter can't be removed (e.g., because the function is used as a
|
||||||
callback and has to match a certain interface), you can annotate the
|
callback and has to match a certain interface), you can annotate
|
||||||
individual parameters with the UNUSED keyword, like "int foo UNUSED".
|
the individual parameters with the UNUSED (or MAYBE_UNUSED)
|
||||||
|
keyword, like "int foo UNUSED".
|
||||||
|
|
||||||
- We try to support a wide range of C compilers to compile Git with,
|
- We try to support a wide range of C compilers to compile Git with,
|
||||||
including old ones. As of Git v2.35.0 Git requires C99 (we check
|
including old ones. As of Git v2.35.0 Git requires C99 (we check
|
||||||
|
|||||||
@ -195,6 +195,19 @@ struct strbuf;
|
|||||||
#define _NETBSD_SOURCE 1
|
#define _NETBSD_SOURCE 1
|
||||||
#define _SGI_SOURCE 1
|
#define _SGI_SOURCE 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UNUSED marks a function parameter that is always unused. It also
|
||||||
|
* can be used to annotate a function, a variable, or a type that is
|
||||||
|
* always unused.
|
||||||
|
*
|
||||||
|
* A callback interface may dictate that a function accepts a
|
||||||
|
* parameter at that position, but the implementation of the function
|
||||||
|
* may not need to use the parameter. In such a case, mark the parameter
|
||||||
|
* with UNUSED.
|
||||||
|
*
|
||||||
|
* When a parameter may be used or unused, depending on conditional
|
||||||
|
* compilation, consider using MAYBE_UNUSED instead.
|
||||||
|
*/
|
||||||
#if GIT_GNUC_PREREQ(4, 5)
|
#if GIT_GNUC_PREREQ(4, 5)
|
||||||
#define UNUSED __attribute__((unused)) \
|
#define UNUSED __attribute__((unused)) \
|
||||||
__attribute__((deprecated ("parameter declared as UNUSED")))
|
__attribute__((deprecated ("parameter declared as UNUSED")))
|
||||||
@ -649,6 +662,17 @@ static inline int git_has_dir_sep(const char *path)
|
|||||||
#define RESULT_MUST_BE_USED
|
#define RESULT_MUST_BE_USED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MAYBE_UNUSED marks a function parameter that may be unused, but
|
||||||
|
* whose use is not an error. It also can be used to annotate a
|
||||||
|
* function, a variable, or a type that may be unused.
|
||||||
|
*
|
||||||
|
* Depending on a configuration, all uses of such a thing may become
|
||||||
|
* #ifdef'ed away. Marking it with UNUSED would give a warning in a
|
||||||
|
* compilation where it is indeed used, and not marking it at all
|
||||||
|
* would give a warning in a compilation where it is unused. In such
|
||||||
|
* a case, MAYBE_UNUSED is the appropriate annotation to use.
|
||||||
|
*/
|
||||||
#define MAYBE_UNUSED __attribute__((__unused__))
|
#define MAYBE_UNUSED __attribute__((__unused__))
|
||||||
|
|
||||||
#include "compat/bswap.h"
|
#include "compat/bswap.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user