[ovs-dev] [PATCH 1/5] CodingStyle: Allow C99 mixing of declarations and code.
Jarno Rajahalme
jrajahalme at nicira.com
Wed May 28 22:31:03 UTC 2014
On May 23, 2014, at 10:04 AM, Ben Pfaff <blp at nicira.com> wrote:
> On Thu, May 22, 2014 at 05:37:38PM -0700, Jarno Rajahalme wrote:
>> As even the MSVC 2013 now supports the C99 mixing of declarations and
>> code, we can now allow them in OVS code.
>>
>> GCC (at least some versions of it) require the -std=c99 option to not
>> issue warnings, and since we rely in GCC extensions when compiling
>> with GCC, the option -std=gnu99 is now added to the CFLAGS by
>> configure, if the compiler accepts it.
>>
>> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
>
> Are you sure that this line in configure.ac isn't the root of the
> problem?
>
> OVS_ENABLE_OPTION([-Wdeclaration-after-statement])
I did not notice this, sorry. It turned out to be the problem, so there is no need to add the -std option.
I left in the change in transliterating the ‘=‘ as well as ‘-‘ to ‘_’ so that if we ever need to add options with ‘=‘ in them, there should be no problems in doing so.
>
> I'm still really nervous about this one (I think it often uglifies code)
> but let's give it a shot:
>
If it turns out to be too ugly we can always take this one back.
>> - * Don't mix declarations and code within a block.
>> + * Mixing of declarations and code within a block.
>
>> + Don't use other C99 features that are not widely implemented in
>> +older compilers:
>> +
>
> We have enough of these in the source that I think they're not a problem
> in practice anymore, so let's delete this one too:
>
>> * Don't put a trailing comma in an enum declaration (e.g. don't
>> write "enum { x = 1, };").
>
Ok, I’ll change this too. How about this incremental:
---
CodingStyle | 13 ++++++-------
configure.ac | 2 --
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/CodingStyle b/CodingStyle
index ef72c3e..0ba0366 100644
--- a/CodingStyle
+++ b/CodingStyle
@@ -515,7 +515,7 @@ global variables.
C DIALECT
- Some C99 features are OK because they are widely implemented:
+ Most C99 features are OK because they are widely implemented:
* Flexible array members (e.g. struct { int foo[]; }).
@@ -533,16 +533,15 @@ C DIALECT
* Designated initializers (e.g. "struct foo foo = {.a = 1};" and
"int a[] = {[2] = 5};").
- * Mixing of declarations and code within a block.
+ * Mixing of declarations and code within a block. Please use this
+ judiciously; keep declarations nicely grouped together in the
+ beginning of a block if possible.
* Use of declarations in iteration statements (e.g.
"for (int i = 0; i < 10; i++)").
- Don't use other C99 features that are not widely implemented in
-older compilers:
-
- * Don't put a trailing comma in an enum declaration (e.g. don't
- write "enum { x = 1, };").
+ * Use of a trailing comma in an enum declaration (e.g.
+ "enum { x = 1, };").
As a matter of style, avoid // comments.
diff --git a/configure.ac b/configure.ac
index 3387230..4bf69e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -100,7 +100,6 @@ OVS_ENABLE_OPTION([-Wall])
OVS_ENABLE_OPTION([-Wextra])
OVS_ENABLE_OPTION([-Wno-sign-compare])
OVS_ENABLE_OPTION([-Wpointer-arith])
-OVS_ENABLE_OPTION([-Wdeclaration-after-statement])
OVS_ENABLE_OPTION([-Wformat-security])
OVS_ENABLE_OPTION([-Wno-format-zero-length])
OVS_ENABLE_OPTION([-Wswitch-enum])
@@ -115,7 +114,6 @@ OVS_ENABLE_OPTION([-Wmissing-field-initializers])
OVS_ENABLE_OPTION([-Wthread-safety])
OVS_CONDITIONAL_CC_OPTION([-Wno-unused], [HAVE_WNO_UNUSED])
OVS_CONDITIONAL_CC_OPTION([-Wno-unused-parameter], [HAVE_WNO_UNUSED_PARAMETER])
-OVS_CHECK_CC_OPTION([-std=gnu99], [CFLAGS="$CFLAGS -std=gnu99"])
OVS_ENABLE_WERROR
OVS_ENABLE_SPARSE
More information about the dev
mailing list