[webkit-dev] Style proposal for branch style for macros

Filip Pizlo fpizlo at apple.com
Sat Apr 19 13:09:24 PDT 2014


Hey everyone,

When guarding code with macros that are always defined, such as ASSERT_DISABLED (it's always either 0 or 1), we have a choice between:

	if (!ASSERT_DISABLED) {
	    // do things
	}

and:

#if !ASSERT_DISABLED
	// do things
#endif

I'd like to propose that anytime the normal if would be semantically equivalent to the preprocessor #if, the normal if should be used.

We don't lose any compiler optimization, since even at -O0, the compiler will constant fold the normal if.  We do gain a lot of clarity, since the control flow of normal if statements is subject to proper indentation.

The "semantically equivalent" requirement still allows for #if to be used for thinngs like:

- Guarding the placement of fields in a class.
- Guarding the definitions of other macros (in the case of ASSERT_DISABLED, we define ASSERT in different ways guarded by #if's)
- Guarding the definition/declaration/inclusion of entire functions, classes, and other top-level constructs.

Thoughts?

-Phil

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-dev/attachments/20140419/52541ff9/attachment.html>


More information about the webkit-dev mailing list