title: ((always_inline)) does not work when function is implemented in different file
body: <p>I have a file <code>funcs.h</code> where I have the declaration of function:</p>
  
  <pre><code>inline void some_func( void ) __attribute__((always_inline));
  </code></pre>
  
  <p>Then I have a file <code>funcs.c</code> where I have the implementation of the function:</p>
  
  <pre><code>inline void some_func( void ) { … }
  </code></pre>
  
  <p>Then in my main file <code>main.c</code> I <code>#include</code> the <code>funcs.h</code> and try to use <code>some_func()</code> somewhere in the code. However when I compile my program and look at the binary file, the function appears to be compiled as a regular separate function, and called just like any other regular function, instead of being embedded as inline.</p>
  
  <p>Why is that happening, and is there a way to force actual inlining into this? (Except the option of just using <code>#define</code> macros instead of functions, of course.)</p>