136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: llvm-mc -triple i386-unknown-unknown %s -filetype=obj -o %t.o
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: llvm-readobj -r %t.o | FileCheck %s
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: llvm-dwarfdump -debug-dump=line %t.o | FileCheck %s -check-prefix=DWARF-DUMP
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .file 1 "foo.c"
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .text
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .globl foo
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .type foo, @function
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .align 4
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesfoo:
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .loc 1 2 discriminator 1
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    ret
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    .size foo, .-foo
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .section        .debug_info,"",@progbits
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.L.debug_info_begin0:
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .long   34                      # Length of Unit
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .short  4                       # DWARF version number
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .long   .L.debug_abbrev_begin   # Offset Into Abbrev. Section
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   8                       # Address Size (in bytes)
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   1                       # Abbrev [1] 0xb:0x1b DW_TAG_compile_unit
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .long   .Linfo_string0          # DW_AT_producer
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .short  12                      # DW_AT_language
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .long   .Linfo_string1          # DW_AT_name
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .quad   0                       # DW_AT_low_pc
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .long   0                       # DW_AT_stmt_list
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .long   .Linfo_string2          # DW_AT_comp_dir
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines                                        # DW_AT_APPLE_optimized
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .section        .debug_abbrev,"",@progbits
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.L.debug_abbrev_begin:
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   1                       # Abbreviation Code
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   17                      # DW_TAG_compile_unit
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   0                       # DW_CHILDREN_no
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   37                      # DW_AT_producer
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   14                      # DW_FORM_strp
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   19                      # DW_AT_language
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   5                       # DW_FORM_data2
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   3                       # DW_AT_name
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   14                      # DW_FORM_strp
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   17                      # DW_AT_low_pc
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   1                       # DW_FORM_addr
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   16                      # DW_AT_stmt_list
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   23                      # DW_FORM_sec_offset
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   27                      # DW_AT_comp_dir
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   14                      # DW_FORM_strp
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .ascii  "\341\177"              # DW_AT_APPLE_optimized
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   25                      # DW_FORM_flag_present
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   0                       # EOM(1)
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   0                       # EOM(2)
5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .byte   0                       # EOM(3)
5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.L.debug_abbrev_end:
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:      Relocations [
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:        Section ({{[^ ]+}}) .rel.debug_line {
5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-NEXT:     0x2D R_386_32 .text 0x0
5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-NEXT:   }
5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# DWARF-DUMP: Address            Line   Column File   ISA Discriminator Flags
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# DWARF-DUMP: ------------------ ------ ------ ------ --- ------------- -------------
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# DWARF-DUMP: 0x0001021300000000     1      0      1   0             1  is_stmt
62