Hi!

On Tue, 28 Jan 2014 09:12:44 -0800, Ian Lance Taylor <i...@google.com> wrote:
> On Tue, Jan 28, 2014 at 8:11 AM, Thomas Schwinge
> <tho...@codesourcery.com> wrote:
> > On Tue, 28 Jan 2014 06:52:30 -0800, Ian Lance Taylor <i...@google.com> 
> > wrote:
> >> On Tue, Jan 28, 2014 at 6:36 AM, Thomas Schwinge
> >> <tho...@codesourcery.com> wrote:
> >> > Avoid "'dc' may be uninitialized" warning.
> >> >
> >> >         libiberty/
> >> >         * cp-demangle.c (d_demangle_callback): Put __builtin_unreachable
> >> >         in place, to help the compiler.
> >
> > For my own education: why is this not considered a GCC trunk bug?  It is
> > xgcc/cc1 which is coming up with this (bogus?) warning, but only for -Og
> > and not for -O0, -O1, etc.?
> 
> I don't really have an opinion on whether this is a bug in GCC or
> not.  Since libiberty is compiled by other compilers, I think your
> cp-demangle.c patch is reasonable and appropriate either way.
> 
> In particular, it's not a bug for the compiler to consider the
> possibility that type may take on a value not named in the enum.
> C/C++ impose no restrictions on values of enum type.  It's valid to
> write code that stores a value that is not an enum constant into a
> variable of enum type, so it's reasonable for the compiler to consider
> the possibility, even though we can clearly see that it can not
> happen.

OK, I agree to all of that, but I'd assume that if the compiler doesn't
do such value tracking to see whether all cases have been covered, it
also souldn't emit such possibly unitialized warning, to not cause false
positive warnings.

> I don't know why the compiler reports a different warning for -O1 and
> -Og.  I encourage you to reduce the code into a standalone test case
> and file a bug report.

<http://gcc.gnu.org/PR59970>.  Will try to continue with that one, but at
low priority.


Grüße,
 Thomas

Attachment: pgpWXpSQPrTMc.pgp
Description: PGP signature

Reply via email to