title: g++ doesn't inline functions
body: <p>There is such code:</p>
  
  <pre><code>int fun1(){
     return 2 + 3;
  }
  
  inline int fun2(){  
     return 4 + 5;
  }
  
  int main(){
      int a = fun1();
      int b = fun2();
      return 0;
  }
  </code></pre>
  
  <p>and corresponding assembly code:</p>
  
  <pre><code>    .file   "prog47.cpp"
      .text
  .globl _Z4fun1v
      .type   _Z4fun1v, @function
  _Z4fun1v:
  .LFB0:
      .cfi_startproc
      .cfi_personality 0x0,__gxx_personality_v0
      pushl   %ebp
      .cfi_def_cfa_offset 8
      movl    %esp, %ebp
      .cfi_offset 5, -8
      .cfi_def_cfa_register 5
      movl    $5, %eax
      popl    %ebp
      ret
      .cfi_endproc
  .LFE0:
      .size   _Z4fun1v, .-_Z4fun1v
      .section    .text._Z4fun2v,"axG",@progbits,_Z4fun2v,comdat
      .weak   _Z4fun2v
      .type   _Z4fun2v, @function
  _Z4fun2v:
  .LFB1:
      .cfi_startproc
      .cfi_personality 0x0,__gxx_personality_v0
      pushl   %ebp
      .cfi_def_cfa_offset 8
      movl    %esp, %ebp
      .cfi_offset 5, -8
      .cfi_def_cfa_register 5
      movl    $9, %eax
      popl    %ebp
      ret
      .cfi_endproc
  .LFE1:
      .size   _Z4fun2v, .-_Z4fun2v
      .text
  .globl main
      .type   main, @function
  main:
  .LFB2:
      .cfi_startproc
      .cfi_personality 0x0,__gxx_personality_v0
      pushl   %ebp
      .cfi_def_cfa_offset 8
      movl    %esp, %ebp
      .cfi_offset 5, -8
      .cfi_def_cfa_register 5
      andl    $-16, %esp
      subl    $16, %esp
      call    _Z4fun1v
      movl    %eax, 12(%esp)
      call    _Z4fun2v        # why fun2 is called?
      movl    %eax, 8(%esp)
      movl    $0, %eax
      leave
      ret
      .cfi_endproc
  .LFE2:
      .size   main, .-main
      .section    .note.GNU-stack,"",@progbits
  </code></pre>
  
  <p>Why function fun2 is not inlined and called like normal function? I have read that inline keyword is only hint for compiler and it doesn't have to inline function, however definition of fun2 is so simple, so it could be inlined. How to force g++ to inline functions?</p>