| # This assembly file was generated from the following trivial C code: |
| # $ cat scattered.c |
| # int bar = 42; |
| # $ clang -S -arch armv7 -g scattered.c |
| # $ clang -c -o 1.o scattered.s |
| # |
| # Then I edited the debug info bellow to change the DW_AT_location of the bar |
| # variable from '.long _bar' to '.long _bar + 16' in order to generate a |
| # scattered reloc (I do not think LLVM will generate scattered relocs in |
| # debug info by itself). |
| |
| .section __TEXT,__text,regular,pure_instructions |
| .ios_version_min 5, 0 |
| .syntax unified |
| .file 1 "scattered.c" |
| .section __DATA,__data |
| .globl _bar @ @bar |
| .p2align 2 |
| _bar: |
| .long 42 @ 0x2a |
| |
| .section __DWARF,__debug_str,regular,debug |
| Linfo_string: |
| .asciz "clang version 3.9.0 (trunk 259311)" @ string offset=0 |
| .asciz "scattered.c" @ string offset=35 |
| .asciz "/tmp" @ string offset=47 |
| .asciz "bar" @ string offset=52 |
| .asciz "int" @ string offset=56 |
| .section __DWARF,__debug_loc,regular,debug |
| Lsection_debug_loc: |
| .section __DWARF,__debug_abbrev,regular,debug |
| Lsection_abbrev: |
| .byte 1 @ Abbreviation Code |
| .byte 17 @ DW_TAG_compile_unit |
| .byte 1 @ DW_CHILDREN_yes |
| .byte 37 @ DW_AT_producer |
| .byte 14 @ DW_FORM_strp |
| .byte 19 @ DW_AT_language |
| .byte 5 @ DW_FORM_data2 |
| .byte 3 @ DW_AT_name |
| .byte 14 @ DW_FORM_strp |
| .byte 16 @ DW_AT_stmt_list |
| .byte 6 @ DW_FORM_data4 |
| .byte 27 @ DW_AT_comp_dir |
| .byte 14 @ DW_FORM_strp |
| .byte 0 @ EOM(1) |
| .byte 0 @ EOM(2) |
| .byte 2 @ Abbreviation Code |
| .byte 52 @ DW_TAG_variable |
| .byte 0 @ DW_CHILDREN_no |
| .byte 3 @ DW_AT_name |
| .byte 14 @ DW_FORM_strp |
| .byte 73 @ DW_AT_type |
| .byte 19 @ DW_FORM_ref4 |
| .byte 63 @ DW_AT_external |
| .byte 12 @ DW_FORM_flag |
| .byte 58 @ DW_AT_decl_file |
| .byte 11 @ DW_FORM_data1 |
| .byte 59 @ DW_AT_decl_line |
| .byte 11 @ DW_FORM_data1 |
| .byte 2 @ DW_AT_location |
| .byte 10 @ DW_FORM_block1 |
| .byte 0 @ EOM(1) |
| .byte 0 @ EOM(2) |
| .byte 3 @ Abbreviation Code |
| .byte 36 @ DW_TAG_base_type |
| .byte 0 @ DW_CHILDREN_no |
| .byte 3 @ DW_AT_name |
| .byte 14 @ DW_FORM_strp |
| .byte 62 @ DW_AT_encoding |
| .byte 11 @ DW_FORM_data1 |
| .byte 11 @ DW_AT_byte_size |
| .byte 11 @ DW_FORM_data1 |
| .byte 0 @ EOM(1) |
| .byte 0 @ EOM(2) |
| .byte 0 @ EOM(3) |
| .section __DWARF,__debug_info,regular,debug |
| Lsection_info: |
| Lcu_begin0: |
| .long 52 @ Length of Unit |
| .short 2 @ DWARF version number |
| Lset0 = Lsection_abbrev-Lsection_abbrev @ Offset Into Abbrev. Section |
| .long Lset0 |
| .byte 4 @ Address Size (in bytes) |
| .byte 1 @ Abbrev [1] 0xb:0x2d DW_TAG_compile_unit |
| .long 0 @ DW_AT_producer |
| .short 12 @ DW_AT_language |
| .long 35 @ DW_AT_name |
| Lset1 = Lline_table_start0-Lsection_line @ DW_AT_stmt_list |
| .long Lset1 |
| .long 47 @ DW_AT_comp_dir |
| .byte 2 @ Abbrev [2] 0x1e:0x12 DW_TAG_variable |
| .long 52 @ DW_AT_name |
| .long 48 @ DW_AT_type |
| .byte 1 @ DW_AT_external |
| .byte 1 @ DW_AT_decl_file |
| .byte 1 @ DW_AT_decl_line |
| .byte 5 @ DW_AT_location |
| .byte 3 |
| .long _bar + 16 |
| .byte 3 @ Abbrev [3] 0x30:0x7 DW_TAG_base_type |
| .long 56 @ DW_AT_name |
| .byte 5 @ DW_AT_encoding |
| .byte 4 @ DW_AT_byte_size |
| .byte 0 @ End Of Children Mark |
| .section __DWARF,__debug_ranges,regular,debug |
| Ldebug_range: |
| .section __DWARF,__debug_macinfo,regular,debug |
| .byte 0 @ End Of Macro List Mark |
| .section __DWARF,__apple_names,regular,debug |
| Lnames_begin: |
| .long 1212240712 @ Header Magic |
| .short 1 @ Header Version |
| .short 0 @ Header Hash Function |
| .long 1 @ Header Bucket Count |
| .long 1 @ Header Hash Count |
| .long 12 @ Header Data Length |
| .long 0 @ HeaderData Die Offset Base |
| .long 1 @ HeaderData Atom Count |
| .short 1 @ DW_ATOM_die_offset |
| .short 6 @ DW_FORM_data4 |
| .long 0 @ Bucket 0 |
| .long 193487034 @ Hash in Bucket 0 |
| .long LNames0-Lnames_begin @ Offset in Bucket 0 |
| LNames0: |
| .long 52 @ bar |
| .long 1 @ Num DIEs |
| .long 30 |
| .long 0 |
| .section __DWARF,__apple_objc,regular,debug |
| Lobjc_begin: |
| .long 1212240712 @ Header Magic |
| .short 1 @ Header Version |
| .short 0 @ Header Hash Function |
| .long 1 @ Header Bucket Count |
| .long 0 @ Header Hash Count |
| .long 12 @ Header Data Length |
| .long 0 @ HeaderData Die Offset Base |
| .long 1 @ HeaderData Atom Count |
| .short 1 @ DW_ATOM_die_offset |
| .short 6 @ DW_FORM_data4 |
| .long -1 @ Bucket 0 |
| .section __DWARF,__apple_namespac,regular,debug |
| Lnamespac_begin: |
| .long 1212240712 @ Header Magic |
| .short 1 @ Header Version |
| .short 0 @ Header Hash Function |
| .long 1 @ Header Bucket Count |
| .long 0 @ Header Hash Count |
| .long 12 @ Header Data Length |
| .long 0 @ HeaderData Die Offset Base |
| .long 1 @ HeaderData Atom Count |
| .short 1 @ DW_ATOM_die_offset |
| .short 6 @ DW_FORM_data4 |
| .long -1 @ Bucket 0 |
| .section __DWARF,__apple_types,regular,debug |
| Ltypes_begin: |
| .long 1212240712 @ Header Magic |
| .short 1 @ Header Version |
| .short 0 @ Header Hash Function |
| .long 1 @ Header Bucket Count |
| .long 1 @ Header Hash Count |
| .long 20 @ Header Data Length |
| .long 0 @ HeaderData Die Offset Base |
| .long 3 @ HeaderData Atom Count |
| .short 1 @ DW_ATOM_die_offset |
| .short 6 @ DW_FORM_data4 |
| .short 3 @ DW_ATOM_die_tag |
| .short 5 @ DW_FORM_data2 |
| .short 4 @ DW_ATOM_type_flags |
| .short 11 @ DW_FORM_data1 |
| .long 0 @ Bucket 0 |
| .long 193495088 @ Hash in Bucket 0 |
| .long Ltypes0-Ltypes_begin @ Offset in Bucket 0 |
| Ltypes0: |
| .long 56 @ int |
| .long 1 @ Num DIEs |
| .long 48 |
| .short 36 |
| .byte 0 |
| .long 0 |
| |
| .subsections_via_symbols |
| .section __DWARF,__debug_line,regular,debug |
| Lsection_line: |
| Lline_table_start0: |