Messages in this thread | ![/](/images/icornerl.gif) | | From | Nikita Danilov <> | Date | Tue, 20 Sep 2005 01:10:22 +0400 | Subject | Re: I request inclusion of reiser4 in the mainline kernel |
| |
Stephen Pollei writes: > On 9/18/05, Nikita Danilov <nikita@clusterfs.com> wrote: > > Denis Vlasenko writes: > > > On Friday 16 September 2005 20:05, Hans Reiser wrote: > > > You can declare functions even if you never use them. > > > Thus here you can avoid using #if/#endif: > > It's other way around: declaration is guarded by the preprocessor > > conditional so that nobody accidentally use znode_is_loaded() outside of > > the debugging mode. > Except it doesn't disallow someone from using znode_is_loaded, if you > wanted to do that you would have done
I just described why conditionals are used here. You can trust me: I wrote that code. :-)
> #if defined(REISER4_DEBUG) || defined(WHATEVER_ELSE) > int znode_is_loaded(const znode * node /* znode to query */ ); > #else > #define znode_is_loaded(I_dont_care_you_are_going_to_) \ > } )die(]0now[>anyway<}}}}}}*bye*} > #endif > That way instead of silently(or -Wmissing-prototypes gving a warning) > quessing at a prototype and *maybe* geting a link time error, you get > a nice compile-time bomb-out.
Maybe, but kernel developers are supposed to watch for compiler messages. People who use that technique definitely do.
> > So unless you have -Wmissing-prototypes and -Werror set then your > #if/#endif does very little indeed, especially with the size of kernel > it's easy to ignore yet another warning even if the missing-prototype > warning was set.
It's enough to monitor your own code, rather than the whole kernel.
Nikita. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |