title: Static short reference yields an error in recursive function
body: <p>Here's the whole source:</p>
  
  <pre><code>#include &lt;iostream&gt;
  void recursion(static short &amp;di);
  using namespace std;
  
  int main()
  {
      short pi = 1;
      for(pi; pi &gt; 0; pi++)
      {
          cout &lt;&lt; "Hi, pi!" &lt;&lt; "\n";
          recursion(pi);
      }
  }
  void recursion(static short &amp;di)
  {
      di++;
      if(di &lt; 20)
      {
          return;
      }
      else
      {
          cout &lt;&lt; di &lt;&lt; "\n";    
      }
  }
  </code></pre>
  
  <p>For some reason it works fine when the 16-bit container isn't static, but I want it to be static, and it gives the following error: </p>
  
  <blockquote>
    <p>main.cpp:2:29: error: storage class specifiers invalid in parameter declarations
     void recursion(static short di);
                                 ^
    main.cpp:2:29: error: storage class specified for parameter 'di'
    main.cpp:14:29: error: storage class specifiers invalid in parameter declarations
     void recursion(static short di)
                                 ^
    main.cpp:14:29: error: storage class specified for parameter 'di'</p>
  </blockquote>