Yeah, but that's fine - I'll:
• move current clang switch enum behavior under -Wswitch, including my new
warning
• remove the, now empty -Wswitch-enum group from -Wswitch so it's off by
default as it is in gcc
• implement gcc's switch-enum behavior under that group

It's. A bit breaking for clang only users, but bring things in line with
gcc (with the bonus of my new warning where it's most valuable)
------------------------------
From: Chandler Carruth
Sent: 1/21/2012 2:02 PM
To: Fariborz Jahanian
Cc: David Blaikie; [email protected]
Subject: Re: [cfe-commits] r148640 - in /cfe/trunk:
include/clang/Basic/DiagnosticGroups.td
include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaStmt.cpp
test/Sema/switch.c test/Sema/warn-unreachable.c
test/SemaCXX/gnu-case-ranges.cpp test/SemaCXX/return-n

On Sat, Jan 21, 2012 at 11:43 AM, Fariborz Jahanian <[email protected]>wrote:

> Yes, clang currently treats -Wswitch-enum same as -Wswitch. Maybe, while
> you
> are at it you can address this too. Once -Wswitch-enum is corrected, a
> "default' can no
> longer hide missing case labels.
>

I worry that fixing -Wswitch-enum will simply cause everyone to turn it
off, and only turn on -Wswitch. I certainly wouldn't be interested in the
behavior described by -Wswitch-enum. It's important to be able to write a
compact switch that wants to handle exactly two cases from an enumeration,
and default the rest. The nice thing about David's patch is that when the
default becomes unnecessary, we notice it, remove it, and start benefitting
from -Wswitch warnings. So i think David's warning is likely to be valuable
even with a fixed -Wswitch-enum, and fixing -Wswitch-enum will just make
-Wswitch-enum essentially unused. =/
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to