Wmissing-base-class-initializer (PR7651 Define -Wextra strictly in terms of other warning flags)

Manuel López-Ibáñez lopezibanez@gmail.com
Tue Jan 9 22:49:00 GMT 2007


On 09 Jan 2007 23:13:23 +0100, Gabriel Dos Reis
<gdr@integrable-solutions.net> wrote:
>
> I would like to re-state a general concern I have made when reviewing
> some of your patches.
>

Thanks for paying attention to this. It seems not many people are
interested on this area.

> Yes, -Wextra should be split into sub-options.  No, we should not end
> up with a situation where there is a one-to-one and onto mapping
> between the -W options and any single diagnostic message we spit.  If we
> arrive there, then we have failed to properly keep our user interface
> from leaking implementation details (that may vary over releases).

I don't see how we are leaking implementation details.
I do see that many users cannot use Wextra because they don't want to
get the warning for "an unsigned value is compared against zero with <
or >=" when they use a macro or a template.

I also do see that current warnings in Wextra are under-documented,
especially C++ warnings. I am no C++ expert and some of them mean
nothing to me (ambiguous virtual bases?). So please, take that into
account if I don't see some obvious logical subset.

> -Wextra should be split into *logical* subsets.  I fully appreciate
> the task is hard, but if we review only one option at a time, we may
> very well miss the picture and end up leaking implementation detail
> information.

I completely agree. I am trying to do this, so if you could point to
logical subsets, I will happily fix the patches. Still, I think it
would be easier to see the relations once Wextra is completely cleaned
up. There is still a lot of time before GCC 4.3 is released and I
think a lot of stuff could be improved in this area (and a lot of PRs
about diagnostics could be fixed).

Unfortunately, most of Wextra warnings don't have anything to do with
each other (although some of them could be integrated into other
warnings, see http://gcc.gnu.org/ml/gcc-patches/2007-01/msg00440.html
which is also pending review).

What I don't want is to incorporate a controversial and hard to avoid
warning from Wextra (such as an unsigned value is compared against
zero with < or >=) into a generally useful and appreciated warning
such as Walways-true that is enabled by Wall. Given the description of
Walways-true, it may *logically* make sense but from the perspective
of our users it would be a disaster.

> One way to do that is that we have a summary of the kind
> of messages currently controlled by -Wextra.

I don't get this. There is a summary of warnings given by Wextra in
gcc/doc/invoke.texi. One goal of my  patches is to update the summary
to reflect the current implementation.

> I'm not saying this particular patch does that; I'm just expressing a
> general concern I've already expressed when reviewing some of the
> "break out" patches.

I do really appreciate that you are reviewing the patches (you are the
only one that has reviewed them so far!) and I do really appreciate
your feedback on any specific issue. Just let me know and I will fix
it and resubmit.

Cheers,

Manuel.



More information about the Gcc-patches mailing list