https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82799
Bug ID: 82799 Summary: [8 Regression] -Wunused-but-set-variable false positive Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sgunderson at bigfoot dot com Target Milestone: --- Hi, Reduced testcase (automatically; it might be possible to reduce further): enum a { b }; struct c { template < a > int d() { const bool is_ident = 0; const int ret = is_ident ? 7 : 9; return ret; } void e() { d < b > (); } }; When compiled with -Wall, yields: test.cc: In instantiation of 'int c::d() [with a <anonymous> = (a)0]': test.cc:9:12: required from here test.cc:4:14: warning: variable 'is_ident' set but not used [-Wunused-but-set-variable] const bool is_ident = 0; ^~~~~~~~ even though is_ident is clearly used on the line below. gcc version 8.0.0 20171017 (experimental) [trunk revision 253812] (Debian 20171017-1) This does not happen with GCC 7.2.1.