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"