public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/105497] New: -Wswitch ignores [[maybe_unused]] for an enumerator
@ 2022-05-05 15:37 olafurw at gmail dot com
2022-05-05 15:40 ` [Bug c++/105497] " mpolacek at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: olafurw at gmail dot com @ 2022-05-05 15:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105497
Bug ID: 105497
Summary: -Wswitch ignores [[maybe_unused]] for an enumerator
Product: gcc
Version: 11.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: olafurw at gmail dot com
Target Milestone: ---
enum class Button
{
Left,
Right,
Middle,
NumberOfButtons [[maybe_unused]]
};
int main()
{
Button b = Button::Left;
switch (b) {
case Button::Left:
case Button::Right:
case Button::Middle:
break;
//#ifdef __GNUC__
// case Button::NumberOfButtons:
// __builtin_unreachable();
//#endif
}
}
https://godbolt.org/z/d5M5MYc45
No warning generated for Clang or MSVC but it does for GCC. Works with
__builtin_unreachable()
LLVM bug report about the same thing:
https://bugs.llvm.org/show_bug.cgi?id=36231
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/105497] -Wswitch ignores [[maybe_unused]] for an enumerator
2022-05-05 15:37 [Bug c++/105497] New: -Wswitch ignores [[maybe_unused]] for an enumerator olafurw at gmail dot com
@ 2022-05-05 15:40 ` mpolacek at gcc dot gnu.org
2022-05-05 15:43 ` mpolacek at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2022-05-05 15:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105497
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2022-05-05
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Keywords| |diagnostic
CC| |mpolacek at gcc dot gnu.org
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Ah, that's interesting. Confirmed.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/105497] -Wswitch ignores [[maybe_unused]] for an enumerator
2022-05-05 15:37 [Bug c++/105497] New: -Wswitch ignores [[maybe_unused]] for an enumerator olafurw at gmail dot com
2022-05-05 15:40 ` [Bug c++/105497] " mpolacek at gcc dot gnu.org
@ 2022-05-05 15:43 ` mpolacek at gcc dot gnu.org
2022-05-18 14:34 ` cvs-commit at gcc dot gnu.org
2022-05-18 14:36 ` mpolacek at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2022-05-05 15:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105497
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org
Status|NEW |ASSIGNED
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/105497] -Wswitch ignores [[maybe_unused]] for an enumerator
2022-05-05 15:37 [Bug c++/105497] New: -Wswitch ignores [[maybe_unused]] for an enumerator olafurw at gmail dot com
2022-05-05 15:40 ` [Bug c++/105497] " mpolacek at gcc dot gnu.org
2022-05-05 15:43 ` mpolacek at gcc dot gnu.org
@ 2022-05-18 14:34 ` cvs-commit at gcc dot gnu.org
2022-05-18 14:36 ` mpolacek at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-18 14:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105497
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>:
https://gcc.gnu.org/g:60fdce11dc9e5ddf671b07a3fc6ed70476860b22
commit r13-622-g60fdce11dc9e5ddf671b07a3fc6ed70476860b22
Author: Marek Polacek <polacek@redhat.com>
Date: Sat May 7 16:15:49 2022 -0400
c, c++: -Wswitch warning on [[maybe_unused]] enumerator [PR105497]
This PR complains that we emit the "enumeration value not handled in
switch" warning even though the enumerator was marked with the
[[maybe_unused]] attribute.
I couldn't just check TREE_USED, because the enumerator could have been
used earlier in the function, which doesn't play well with the
c_do_switch_warnings warning. Instead, I had to check the attributes on
the CONST_DECL. This is easy since the TYPE_VALUES of an enum type are
now consistent between C and C++, both of which store the CONST_DECL in
its TREE_VALUE.
PR c++/105497
gcc/c-family/ChangeLog:
* c-warn.cc (c_do_switch_warnings): Don't warn about unhandled
enumerator when it was marked with attribute unused.
gcc/testsuite/ChangeLog:
* c-c++-common/Wswitch-1.c: New test.
* g++.dg/warn/Wswitch-4.C: New test.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/105497] -Wswitch ignores [[maybe_unused]] for an enumerator
2022-05-05 15:37 [Bug c++/105497] New: -Wswitch ignores [[maybe_unused]] for an enumerator olafurw at gmail dot com
` (2 preceding siblings ...)
2022-05-18 14:34 ` cvs-commit at gcc dot gnu.org
@ 2022-05-18 14:36 ` mpolacek at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2022-05-18 14:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105497
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Fixed for GCC 13.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-05-18 14:36 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-05 15:37 [Bug c++/105497] New: -Wswitch ignores [[maybe_unused]] for an enumerator olafurw at gmail dot com
2022-05-05 15:40 ` [Bug c++/105497] " mpolacek at gcc dot gnu.org
2022-05-05 15:43 ` mpolacek at gcc dot gnu.org
2022-05-18 14:34 ` cvs-commit at gcc dot gnu.org
2022-05-18 14:36 ` mpolacek at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).