title: Regressions to check function override issue
body: <p>Compiler: GCC</p>
  
  <p>In below code, all 3 Foo()'s signature were <code>Foo(bool b)</code>, but someone updated the code and forgot to change <code>DeriveB::Foo</code>. This passes compilation. How can we prevent this kind of mistakes? </p>
  
  <pre><code>class Base {
    virtual Foo(bool b, int i);
  }
  
  class DerivedA : public Base {
    Foo(bool b, int i);
  }
  
  class DerivedB : public Base {
    Foo(bool b);
  }
  </code></pre>