Sorry, forgot to check coding standards. Fixed now.

-- 
Salu2
Index: config/auto/warnings.pm
===================================================================
--- config/auto/warnings.pm	(revision 27920)
+++ config/auto/warnings.pm	(working copy)
@@ -44,13 +44,10 @@
         -W
         -Wall
         -Waggregate-return
-        -Wbad-function-cast
-        -Wc++-compat
         -Wcast-align
         -Wcast-qual
         -Wchar-subscripts
         -Wcomment
-        -Wdeclaration-after-statement
         -Wdisabled-optimization
         -Wendif-labels
         -Wextra
@@ -60,23 +57,15 @@
         -Wformat-security
         -Wformat-y2k
         -Wimplicit
-        -Wimplicit-function-declaration
-        -Wimplicit-int
         -Wimport
         -Winit-self
         -Winline
         -Winvalid-pch
         -Wlogical-op
-        -Wmain
         -Wmissing-braces
-        -Wmissing-declarations
         -Wmissing-field-initializers
         -Wno-missing-format-attribute
         -Wmissing-include-dirs
-        -Wmissing-prototypes
-        -Wnested-externs
-        -Wnonnull
-        -Wold-style-definition
         -Wpacked
         -Wparentheses
         -Wpointer-arith
@@ -86,7 +75,6 @@
         -Wsign-compare
         -Wstrict-aliasing
         -Wstrict-aliasing=2
-        -Wstrict-prototypes
         -Wswitch
         -Wswitch-default
         -Wtrigraphs
@@ -97,6 +85,20 @@
         -Wwrite-strings
         -Wnot-a-real-warning
     );
+    my @potential_warnings_no_cpp = qw(
+        -Wbad-function-cast
+        -Wc++-compat
+        -Wdeclaration-after-statement
+        -Wimplicit-function-declaration
+        -Wimplicit-int
+        -Wmain
+        -Wmissing-declarations
+        -Wmissing-prototypes
+        -Wnested-externs
+        -Wnonnull
+        -Wold-style-definition
+        -Wstrict-prototypes
+    );
 
     my @cage_warnings = qw(
         -std=c89
@@ -134,6 +136,7 @@
     );
 
     $data{potential_warnings} = [EMAIL PROTECTED];
+    $data{potential_warnings_no_cpp} = [EMAIL PROTECTED];
     $data{cage_warnings} = [EMAIL PROTECTED];
     return \%data;
 }
@@ -145,6 +148,9 @@
     print "\n" if $verbose;
     if ( defined $conf->data->get('gccversion') ) {
 
+        # Dirty way of checking if compiling with c++
+        my $nocpp = index($conf->data->get('cc'), '++') < 0;
+
         # add on some extra warnings if requested
         $self->_add_cage_warnings($conf);
         $self->_add_maintainer_warnings($conf);
@@ -153,7 +159,18 @@
         for my $maybe_warning (@{ $self->{potential_warnings} }) {
             $self->try_warning( $conf, $maybe_warning, $verbose );
         }
-        $self->set_result("set for gcc");
+        if ($nocpp) {
+            for my $maybe_warning (@{ $self->{potential_warnings_no_cpp} }) {
+                $self->try_warning( $conf, $maybe_warning, $verbose );
+            }
+        }
+
+        if ($nocpp) {
+           $self->set_result("set for gcc");
+        }
+        else {
+           $self->set_result("set for g++");
+        }
     }
     else {
         print "Currently we only set warnings if using gcc as C compiler\n"

Reply via email to