public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* __FUNCTION__
@ 2002-01-08 21:36 Vladimir Kondratiev
  2002-01-08 21:59 ` __FUNCTION__ Ian S. Nelson
  2002-01-08 22:01 ` __FUNCTION__ Greg KH
  0 siblings, 2 replies; 18+ messages in thread
From: Vladimir Kondratiev @ 2002-01-08 21:36 UTC (permalink / raw)
  To: linux-kernel

Hello,
Modern C standard (C99) defines __FUNCTION__ as if immediately after 
function open brace string with function name is declared. Thus, it's 
invalid to use string concatenations like __FILE__ ":" __FUNCTION__.

Gcc 3.03 gives warning for such use of __FUNCTION__. Before this 
warnings become error, it's worth to fix this in the kernel source.

I found tons of improper __FUNCTION__ usage in USB drivers. I am not to 
say, USB is the only place, I just started with it. In USB, typical use 
is with dbg() and alike macros. dbg() defined in usb.h as follows:

#define dbg(format, arg...) printk(KERN_DEBUG __FILE__ ": " format "\n" 
, ## arg)

In source it is usually used like

dbg(__FUNCTION__ " endpoint %d\n", usb_pipeendpoint(this_urb->pipe));

I propose modification for dbg() and friends like

#define dbg(format, arg...) printk(KERN_DEBUG __FILE__ ":%s - " format 
"\n", __FUNCTION__, ## arg)

This will enable the same usage, but will incorporate __FUNCTION__ in 
the common message prefix. This centralization will force function name 
in all messages, and make it easy to fix code. Code will be shorter and 
cleaner. It may be worth to (#ifdef MODULE) add module name to message 
prefix.

Any comments?

Please, when replying, CC me: mailto:vladimir.kondratiev@intel.com




^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2002-01-09 22:36 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-08 21:36 __FUNCTION__ Vladimir Kondratiev
2002-01-08 21:59 ` __FUNCTION__ Ian S. Nelson
2002-01-08 22:17   ` __FUNCTION__ Greg KH
2002-01-08 23:09   ` __FUNCTION__ Vladimir Kondratiev
2002-01-08 22:01 ` __FUNCTION__ Greg KH
2002-01-08 22:56   ` __FUNCTION__ jtv
2002-01-08 23:11     ` __FUNCTION__ Greg KH
2002-01-08 23:39       ` __FUNCTION__ David Weinehall
2002-01-08 23:51         ` __FUNCTION__ Andrew Morton
2002-01-09  0:04           ` __FUNCTION__ David Weinehall
2002-01-09  0:14             ` __FUNCTION__ Andrew Morton
2002-01-09  0:23           ` __FUNCTION__ Anton Altaparmakov
2002-01-08 23:42       ` __FUNCTION__ jtv
2002-01-09  2:12       ` __FUNCTION__ Richard Henderson
2002-01-09  7:23         ` __FUNCTION__ Greg KH
2002-01-09  7:32           ` __FUNCTION__ Neil Booth
2002-01-09 22:35           ` __FUNCTION__ Richard Henderson
2002-01-09  9:05       ` __FUNCTION__ Martin Dalecki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox