This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Enable -Werror=declaration-after-statement.
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 18 Jun 2014 13:04:24 +0000 (09:04 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 18 Jun 2014 18:14:28 +0000 (14:14 -0400)
For C89 compliancy, this is the most common thinko people make.
While waiting for -pedantic -std=c89, which will catch the same.

cflags.SH

index 3ab5180..21f1bbb 100755 (executable)
--- a/cflags.SH
+++ b/cflags.SH
@@ -159,7 +159,11 @@ case "$gccversion" in
 '') ;;
 [12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
 Intel*) ;; # # Is that you, Intel C++?
-*)  for opt in -ansi -std=c89 -W -Wextra -Wdeclaration-after-statement \
+# XXX if -pedantic (or -pedantic-errors!) is ever added,
+# the -Werror=declaration-after-statement can be removed
+# since -std=c89 -pedantic implies the -Werror=...
+*)  for opt in -ansi -std=c89 -W -Wextra \
+               -Werror=declaration-after-statement \
                -Wendif-labels -Wc++-compat -Wwrite-strings
     do
        case " $ccflags " in
@@ -232,7 +236,12 @@ case "$cc" in
   # Extra paranoia in case people have bad canned ccflags:
   # bad in the sense that the flags are accepted by g++,
   # but then whined about.
-  for f in -Wdeclaration-after-statement -std=c89
+  #
+  # -Werror=d-a-s option is valid for g++, by definition,
+  # but we remove it just for cleanliness and shorter command lines.
+  for f in -Wdeclaration-after-statement \
+               -Werror=declaration-after-statement \
+               -std=c89
   do
     case "$ccflags" in
     *"$f"*)
@@ -243,7 +252,7 @@ case "$cc" in
   ;;
 esac
 
-for f in -Wdeclaration-after-statement
+for f in -Wdeclaration-after-statement -Werror=declaration-after-statement
 do
   case "$cppflags" in
   *"$f"*)