brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 9afb272 Raw
168 lines · plain
1## Test that inline function resolution works when the function has been split2## into multiple discontinuous parts (and those parts are placed in different3## sections)4 5# RUN: llvm-mc -triple x86_64-pc-linux -filetype=obj %s -o %t6# RUN: %lldb %t -o "image lookup -v -n look_me_up" -o exit | FileCheck %s7 8# CHECK:      1 match found in {{.*}}9# CHECK:      Summary: {{.*}}`foo - 3 [inlined] foo_inl + 110# CHECK-NEXT:          {{.*}}`foo - 411# CHECK:      Blocks: id = {{.*}}, ranges = [0x00000000-0x00000004)[0x00000005-0x00000008)12# CHECK-NEXT:         id = {{.*}}, ranges = [0x00000001-0x00000003)[0x00000006-0x00000007), name = "foo_inl"13 14        .text15 16        .section        .text.__part1,"ax",@progbits17foo.__part.1:18        nop19.Lfoo_inl.__part.1:20        nop21        .type   look_me_up,@function22look_me_up:23        nop24.Lfoo_inl.__part.1_end:25        nop26.Lfoo.__part.1_end:27        .size   foo.__part.1, .Lfoo.__part.1_end-foo.__part.128 29 30bar:31        nop32.Lbar_end:33        .size   bar, .Lbar_end-bar34 35        .type   foo,@function36foo:37        nop38.Lfoo_inl:39        nop40.Lfoo_inl_end:41        nop42.Lfoo_end:43        .size   foo, .Lfoo_end-foo44 45        .section        .debug_abbrev,"",@progbits46        .byte   1                               # Abbreviation Code47        .byte   17                              # DW_TAG_compile_unit48        .byte   1                               # DW_CHILDREN_yes49        .byte   37                              # DW_AT_producer50        .byte   8                               # DW_FORM_string51        .byte   19                              # DW_AT_language52        .byte   5                               # DW_FORM_data253        .byte   17                              # DW_AT_low_pc54        .byte   1                               # DW_FORM_addr55        .byte   85                              # DW_AT_ranges56        .byte   35                              # DW_FORM_rnglistx57        .byte   116                             # DW_AT_rnglists_base58        .byte   23                              # DW_FORM_sec_offset59        .byte   0                               # EOM(1)60        .byte   0                               # EOM(2)61        .byte   2                               # Abbreviation Code62        .byte   46                              # DW_TAG_subprogram63        .byte   0                               # DW_CHILDREN_no64        .byte   3                               # DW_AT_name65        .byte   8                               # DW_FORM_string66        .byte   0                               # EOM(1)67        .byte   0                               # EOM(2)68        .byte   3                               # Abbreviation Code69        .byte   46                              # DW_TAG_subprogram70        .byte   1                               # DW_CHILDREN_yes71        .byte   85                              # DW_AT_ranges72        .byte   35                              # DW_FORM_rnglistx73        .byte   3                               # DW_AT_name74        .byte   8                               # DW_FORM_string75        .byte   0                               # EOM(1)76        .byte   0                               # EOM(2)77        .byte   4                               # Abbreviation Code78        .byte   29                              # DW_TAG_inlined_subroutine79        .byte   0                               # DW_CHILDREN_no80        .byte   85                              # DW_AT_ranges81        .byte   35                              # DW_FORM_rnglistx82        .byte   49                              # DW_AT_abstract_origin83        .byte   19                              # DW_FORM_ref484        .byte   0                               # EOM(1)85        .byte   0                               # EOM(2)86        .byte   0                               # EOM(3)87 88        .section        .debug_info,"",@progbits89.Lcu_begin0:90        .long   .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit91.Ldebug_info_start0:92        .short  5                               # DWARF version number93        .byte   1                               # DWARF Unit Type94        .byte   8                               # Address Size (in bytes)95        .long   .debug_abbrev                   # Offset Into Abbrev. Section96        .byte   1                               # Abbrev DW_TAG_compile_unit97        .asciz  "Hand-written DWARF"            # DW_AT_producer98        .short  29                              # DW_AT_language99        .quad   0                               # DW_AT_low_pc100        .byte   1                               # DW_AT_ranges101        .long   .Lrnglists_table_base0          # DW_AT_rnglists_base102 103        .byte   3                               # Abbrev DW_TAG_subprogram104        .byte   2                               # DW_AT_ranges105        .asciz  "bar"                           # DW_AT_name106        .byte   0                               # End Of Children Mark107 108.Lfoo_inl_die:109        .byte   2                               # Abbrev DW_TAG_subprogram110        .asciz  "foo_inl"                       # DW_AT_name111 112        .byte   3                               # Abbrev DW_TAG_subprogram113        .byte   0                               # DW_AT_ranges114        .asciz  "foo"                           # DW_AT_name115        .byte   4                               # Abbrev DW_TAG_inlined_subroutine116        .byte   3                               # DW_AT_ranges117        .long   .Lfoo_inl_die-.Lcu_begin0       # DW_AT_abstract_origin118        .byte   0                               # End Of Children Mark119 120        .byte   0                               # End Of Children Mark121.Ldebug_info_end0:122 123        .section        .debug_rnglists,"",@progbits124        .long   .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length125.Ldebug_list_header_start0:126        .short  5                               # Version127        .byte   8                               # Address size128        .byte   0                               # Segment selector size129        .long   4                               # Offset entry count130.Lrnglists_table_base0:131        .long   .Ldebug_ranges0-.Lrnglists_table_base0132        .long   .Ldebug_ranges1-.Lrnglists_table_base0133        .long   .Ldebug_ranges2-.Lrnglists_table_base0134        .long   .Ldebug_ranges3-.Lrnglists_table_base0135.Ldebug_ranges0:136        .byte   6                               # DW_RLE_start_end137        .quad   foo138        .quad   .Lfoo_end139        .byte   6                               # DW_RLE_start_end140        .quad   foo.__part.1141        .quad   .Lfoo.__part.1_end142        .byte   0                               # DW_RLE_end_of_list143.Ldebug_ranges1:144        .byte   6                               # DW_RLE_start_end145        .quad   bar146        .quad   .Lbar_end147        .byte   6                               # DW_RLE_start_end148        .quad   foo.__part.1149        .quad   .Lfoo.__part.1_end150        .byte   6                               # DW_RLE_start_end151        .quad   foo152        .quad   .Lfoo_end153        .byte   0                               # DW_RLE_end_of_list154.Ldebug_ranges2:155        .byte   6                               # DW_RLE_start_end156        .quad   bar157        .quad   .Lbar_end158        .byte   0                               # DW_RLE_end_of_list159.Ldebug_ranges3:160        .byte   6                               # DW_RLE_start_end161        .quad   .Lfoo_inl162        .quad   .Lfoo_inl_end163        .byte   6                               # DW_RLE_start_end164        .quad   .Lfoo_inl.__part.1165        .quad   .Lfoo_inl.__part.1_end166        .byte   0                               # DW_RLE_end_of_list167.Ldebug_list_header_end0:168