title: Unexpected predefined macro behaviour when pasting tokens
body: <p>The following (test with <code>gcc -E blah.c</code>):</p>
  
  <pre><code>#define UNUSED(type) type UNUSED_ ## __COUNTER__
  UNUSED(char const *)
  UNUSED(int)
  </code></pre>
  
  <p>Generates:</p>
  
  <pre><code>char const * UNUSED__COUNTER__
  int UNUSED__COUNTER__
  </code></pre>
  
  <p>I'm expecting:</p>
  
  <pre><code>char const * UNUSED0
  int UNUSED1
  </code></pre>
  
  <p>I've tried calling another macro, wrapping the arguments in brackets to no avail.
  If I don't paste the tokens it seems to work fine.
  The <a href="http://webcache.googleusercontent.com/search?q=cache:http://gcc.gnu.org/onlinedocs/gcc-4.4.4/cpp/Common-Predefined-Macros.html" rel="nofollow noreferrer">documentation</a> specifically mentions the use of <code>__COUNTER__</code> in token pasting.</p>
  
  <p>What am I doing wrong?</p>