title: ASM in C gives an error with -std=c99
body: <p>I'm now willing to compile my project with <code>-std=c99</code> and I'm facing an error I'm not understanding for the moment. This line :</p>
  
  <pre><code>my_type* td = ({ register kmy_type* arg0 asm("eax"); arg0; });
  </code></pre>
  
  <p>gives me the following error only in C99 :</p>
  
  <pre><code>warning: ISO C forbids nested functions
  error: syntax error before ‘asm’
  error: ‘arg0’ undeclared (first use in this function)
  error: (Each undeclared identifier is reported only once
  error: for each function it appears in.)
  warning: ISO C forbids braced-groups within expressions
  </code></pre>
  
  <p>Any clues are welcome to help me understanding what this means. I didn't write this line and I'm also not sure to understand what is its purpose.</p>