https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91972
--- Comment #1 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Another reason to have -Wmissing-declarations is that otherwise mismatches of unused functions are not caught until it's too late (mismatching definition is assumed to be an overload of the function declared in the header file). For a recent example, see https://gcc.gnu.org/pipermail/gcc-patches/2020-May/545129.html which was necessary after a mismatch introduced in https://gcc.gnu.org/pipermail/gcc-patches/2020-May/545114.html