http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59922
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- There is another bug about a similar thing but with constructors/deconstructors. -finstrument-functions inserts try/finally blocks in the code and the dead code is not removed before hand so the warning mechanism gets confused.