Messages in this thread | | | Date | Thu, 29 May 2008 09:11:59 -0400 | From | James Kosin <> | Subject | Re: optimizing out inline functions |
| |
Johannes Weiner wrote: > Hi, > > James Kosin <jkosin@beta.intcomgrp.com> writes: > > >> Sam Ravnborg wrote: >> >>> On Wed, May 28, 2008 at 02:51:02PM -0500, Steve French wrote: >>> >>>> In trying to remove some macros, I ran across another kernel style >>>> >> <<--SNIP-->> >> >>> With reference to a recent thread about kconfig >>> I would prefer: >>> static inline void some_debug_function(var1) >>> { >>> if (KCONFIG_DEBUG_SOMETHING) { >>> something = var1; >>> printk(some debug text); >>> } >>> } >>> >>> >>> But we do not have KCONFIG_DEBUG_SOMETHING available >>> so the second best is to use an empty function >>> to keep the typechecking in place. >>> >>> IIRC gcc optimize both away. >>> >> Another way would be to have: >> >> static inline void some_debug_function(var1) >> { >> #ifdef KCONFIG_DEBUG_SOMETHING >> something = var1; >> printk(some debug text); >> #endif >> } >> >> BUT, this probably violates some styling rules. >> > > Without indenting the ifdefs, I think this solution is the best. > > It gives you the advantages of type checking but saves a superfluous > prototype. > > Hannes > > Actually, Joe Perches, gave a good reason for using the MACRO #define method; so, this could really turn into an interesting discussion. Pros and Cons are always interesting when there is more than one way to do something.
James
[unhandled content-type:application/pgp-signature] | |