title: Why does GCC not add .section into the assembly
body: <p>If you look at the second line of this program it just says "<code>.text</code>".  When I write assembly programs I though that you had to put "<code>.section .text</code>"  Why does <code>GCC</code> omit the "<code>.section</code>".  I also noticed that it includes it before declaring rodata bellow  "<code>.section    .rodata</code>".</p>
  
  <p>Also just wondering what "<code>.type   sum</code>, <code>@function</code>" does?  I wrote an assembly function this morning without it and it executed fine.</p>
  
  <pre><code>.file   "test.c"
          .text
          .globl  sum
          .type   sum, @function
      sum:
      .LFB0:
          .cfi_startproc
          pushq   %rbp
          .cfi_def_cfa_offset 16
          .cfi_offset 6, -16
          movq    %rsp, %rbp
          .cfi_def_cfa_register 6
          movss   %xmm0, -4(%rbp)
          movss   %xmm1, -8(%rbp)
          movss   -4(%rbp), %xmm0
          mulss   -8(%rbp), %xmm0
          cvttss2si   %xmm0, %eax
          popq    %rbp
          .cfi_def_cfa 7, 8
          ret
          .cfi_endproc
      .LFE0:
          .size   sum, .-sum
          .section    .rodata
      .LC2:
          .string "%d\n"
          .text
          .globl  main
          .type   main, @function
      main:
      .LFB1:
          .cfi_startproc
          pushq   %rbp
          .cfi_def_cfa_offset 16
          .cfi_offset 6, -16
          movq    %rsp, %rbp
          .cfi_def_cfa_register 6
          subq    $16, %rsp
          movss   .LC0(%rip), %xmm1
          movss   .LC1(%rip), %xmm0
          call    sum
          movl    %eax, -4(%rbp)
          movl    -4(%rbp), %eax
          movl    %eax, %esi
          movl    $.LC2, %edi
          movl    $0, %eax
          call    printf
          movl    $0, %eax
          leave
          .cfi_def_cfa 7, 8
          ret
          .cfi_endproc
      .LFE1:
          .size   main, .-main
          .section    .rodata
          .align 4
      .LC0:
          .long   1092930765
          .align 4
      .LC1:
          .long   1092825907
          .ident  "GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2"
          .section    .note.GNU-stack,"",@progbits
  </code></pre>