https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84488
Bug ID: 84488
Summary: Incorrect "set but not used" warning for
static_cast<Enum>(double)
Product: gcc
Version: 7.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: will at benfold dot com
Target Milestone: ---
Test case:
int main ()
{
enum Foo {};
double one = 1.0;
return static_cast<Foo>(one);
}
Output:
$ g++ -Wall -Wextra -o minimal minimal.cpp && (./minimal; echo $?)
minimal.cpp: In function ‘int main()’:
minimal.cpp:4:10: warning: variable ‘one’ set but not used
[-Wunused-but-set-variable]
double one = 1.0;
^
1
Changing the (one) to (+one) is enough to silence the warning.