title: How to declare a restricted function pointer argument
body: <p>I can declare a function taking a function pointer as argument,</p>
  
  <pre><code>int bar(int (* a)()) { } // this works
  </code></pre>
  
  <p>I can apply the const qualifier to this argument,</p>
  
  <pre><code>int bar(int (* const a)()) { } // this works
  </code></pre>
  
  <p>But when I apply the restrict qualifier to this argument, I get an error</p>
  
  <pre><code>int bar(int (* restrict a)()) { }
  
  test.c:10:1: error: invalid use of ‘restrict’
   int bar(int (* restrict a)())
  </code></pre>
  
  <p>I am using cc</p>
  
  <pre><code>0 % gcc --version
  gcc (GCC) 7.3.0
  </code></pre>