From owner-freebsd-bugs Tue May 2 22:50:12 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 4236C37B661 for ; Tue, 2 May 2000 22:50:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id WAA83166; Tue, 2 May 2000 22:50:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from shrike.dti.ad.jp (shrike.dti.ad.jp [202.216.228.218]) by hub.freebsd.org (Postfix) with ESMTP id 10EE437C17D for ; Tue, 2 May 2000 22:44:53 -0700 (PDT) (envelope-from shigio@tamacom.com) Received: from choota.signet.or.jp (PPP46.tama-ap5.dti.ne.jp [210.170.192.46]) by shrike.dti.ad.jp (8.9.3/3.7W) with ESMTP id OAA07303 for ; Wed, 3 May 2000 14:44:48 +0900 (JST) Received: (from shigio@localhost) by choota.signet.or.jp (8.9.3/) id OAA63004; Wed, 3 May 2000 14:37:04 +0900 (JST) Message-Id: <200005030537.OAA63004@tamacom.com> Date: Wed, 3 May 2000 14:37:04 +0900 (JST) From: shigio@tamacom.com Reply-To: shigio@tamacom.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: kern/18364: Bad function definition. Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 18364 >Category: kern >Synopsis: Bad function definition using #define. >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue May 2 22:50:01 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Shigio Yamaguchi >Release: FreeBSD 3.4-RELEASE i386 >Organization: Tama Communications corporation >Environment: >Description: 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); >How-To-Repeat: no >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; ... } ... >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message