| Summary: | Bad function definition using #define. | ||
|---|---|---|---|
| Product: | Base System | Reporter: | shigio <shigio> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 3.4-RELEASE | ||
| Hardware: | Any | ||
| OS: | Any | ||
State Changed From-To: open->closed Fixed. |
Some functions use a macro SYSCTL_HANDLER_ARGS but no tag command can detect them as functions, because function's braces are hidden in the macro. SYSCTL_HANDLER_ARGS is like this: #define SYSCTL_HANDLER_ARGS (struct sysctl_oid *oidp, void *arg1, int ar struct sysctl_req *req) ... int sysctl_handle_int SYSCTL_HANDLER_ARGS; Instead, it should be like this: #define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg struct sysctl_req *req ... int sysctl_handle_int (SYSCTL_HANDLER_ARGS); Fix: --------------------------------------------------------------------- [/usr/src/sys/sys/sysctl.h] --------------------------------------------------------------------- #define SYSCTL_HANDLER_ARGS (struct sysctl_oid *oidp, void *arg1, int arg2, \ struct sysctl_req *req) ... int sysctl_handle_int SYSCTL_HANDLER_ARGS; int sysctl_handle_long SYSCTL_HANDLER_ARGS; int sysctl_handle_intptr SYSCTL_HANDLER_ARGS; int sysctl_handle_string SYSCTL_HANDLER_ARGS; int sysctl_handle_opaque SYSCTL_HANDLER_ARGS; | v #define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \ struct sysctl_req *req ... int sysctl_handle_int (SYSCTL_HANDLER_ARGS); int sysctl_handle_long (SYSCTL_HANDLER_ARGS); int sysctl_handle_intptr (SYSCTL_HANDLER_ARGS); int sysctl_handle_string (SYSCTL_HANDLER_ARGS); int sysctl_handle_opaque (SYSCTL_HANDLER_ARGS); --------------------------------------------------------------------- [/usr/src/sys/kern/kern_sysctl.c] --------------------------------------------------------------------- int sysctl_handle_int SYSCTL_HANDLER_ARGS { int error = 0; ... } | v int sysctl_handle_int (SYSCTL_HANDLER_ARGS) { int error = 0; ... } ... How-To-Repeat: no