I think this is from after 4.4 branched: ---------------------- template <typename TT> struct InputIterator { InputIterator () { TT i; (void)*i; // require dereference operator } };
InputIterator<int *> i; --------------------- > c++ -c deal.II/source/dofs/dof_renumbering.cc -W -Wall deal.II/source/dofs/dof_renumbering.cc: In constructor 'InputIterator<TT>::InputIterator() [with TT = int*]': deal.II/source/dofs/dof_renumbering.cc:10: instantiated from here deal.II/source/dofs/dof_renumbering.cc:6: warning: value computed is not used That's obviously bogus, the compiler warns about a statement that is explicitly cast to 'void' so there is no computed value any more. The code is culled from boost's concepts checks, so this is going to hit quite a number of people. W. -- Summary: [4.5 regression] Wrong "value computed is not used" 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=39875