title: What's asm labels in C language?
body: <p>When browsing glibc code, I found some code beyong my understanding of C language, it's introduced in <a href="https://github.com/bminor/glibc/commit/1294b1892e19d70e9e4dca0a2f3e39497f262a42" rel="nofollow noreferrer">this commit</a>. Code is simplified as below.</p>
  <pre class="lang-c prettyprint-override"><code>#include &lt;stdio.h&gt;
  int foo(void) {
    printf(&quot;%s \n&quot;, __FUNCTION__);
    return 0;
  }
  
  int bar(void) asm(&quot;foo&quot;);
  
  int main(int argc, char *argv[]) {
    bar();
    return 0;
  }
  </code></pre>
  <p>Output:</p>
  <pre><code>foo
  </code></pre>