https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87503
Bug ID: 87503 Summary: Spurious -Wunused-but-set-variable warning in template function Product: gcc Version: 8.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: chtz at informatik dot uni-bremen.de Target Milestone: --- Using g++ 8.1.0 and compiling the following minimal example with -Wall template<class Index, bool flag> Index bar(Index rows, Index cols) { const bool left = flag; Index x = left ? rows : cols; return x; } int main() { return bar<int, true>(1,2); } I'm getting this: warning: variable ‘left’ set but not used [-Wunused-but-set-variable] This works fine with g++-7.3 (or earlier) and seems to be fixed in 8.2.0 (I don't have easy access to 8.1.1. If it has been fixed there already, apologies for the noise) Maybe related issue: Bug 85827