This would appear to be a recent regression: ---------------------------- template <int> struct X { static const int s = 2; };
template <typename T> int f() { const unsigned int dim = 2; return X<dim>::s; } template int f<int>(); ----------------------------- deal.II> c++ -c -W -Wunused x.cc x.cc: In function 'int f() [with T = int]': x.cc:8:21: instantiated from here x.cc:4:22: warning: unused variable 'dim' 'dim' is used here, it just is never read from or written to. W. -- Summary: [4.5 regression] Wrong "unused variable" warning Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bangerth at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41110