title: Parameters declared restrict and compiler warnings
body: <p>Neither gcc 5 nor clang 3.6 give warnings where the constraints of the <code>restrict</code> qualifier are violated, even when called with <code>-Wall</code>.  Consider the following code fragment:</p>
  
  <pre><code>extern void f(char *restrict p, char *restrict q);
  
  void g(char *p)
  {
      f(p, p);
  }
  </code></pre>
  
  <p>Naively, I'd expect that the violation can be determined statically, and I was expecting that <code>-Wall</code> would give a warning.  Have I missed a flag somewhere, or is there some problem with giving warnings that I'm not seeing?</p>