15f2a7fa6SAlexey Lapshin# This test verifies that an empty range list in the .debug_ranges section 25f2a7fa6SAlexey Lapshin# doesn't crash dsymutil. As clang does not produce this kind of debug 35f2a7fa6SAlexey Lapshin# info anymore, we used this hand-crafted assembly file to produce a testcase 45f2a7fa6SAlexey Lapshin# Compile with: 55f2a7fa6SAlexey Lapshin# llvm-mc -triple x86_64-apple-darwin -filetype=obj -o 1.o empty_range.o 65f2a7fa6SAlexey Lapshin 7*f1fdfe68SAlexey Lapshin# RUN: dsymutil --linker parallel -f -y %p/../dummy-debug-map.map -oso-prepend-path %p/../../Inputs/empty_range -o - | llvm-dwarfdump -debug-info - | FileCheck %s 85f2a7fa6SAlexey Lapshin 95f2a7fa6SAlexey Lapshin .section __TEXT,__text,regular,pure_instructions 105f2a7fa6SAlexey Lapshin .macosx_version_min 10, 11 115f2a7fa6SAlexey Lapshin .globl __Z3foov 125f2a7fa6SAlexey Lapshin .align 4, 0x90 135f2a7fa6SAlexey Lapshin__Z3foov: ## @_Z3foov 145f2a7fa6SAlexey LapshinLfunc_begin0: 155f2a7fa6SAlexey Lapshin pushq %rbp 165f2a7fa6SAlexey Lapshin movq %rsp, %rbp 175f2a7fa6SAlexey Lapshin popq %rbp 185f2a7fa6SAlexey Lapshin retq 195f2a7fa6SAlexey LapshinLfunc_end0: 205f2a7fa6SAlexey Lapshin .section __DWARF,__debug_abbrev,regular,debug 215f2a7fa6SAlexey LapshinLsection_abbrev: 225f2a7fa6SAlexey Lapshin .byte 1 ## Abbreviation Code 235f2a7fa6SAlexey Lapshin .byte 17 ## DW_TAG_compile_unit 245f2a7fa6SAlexey Lapshin .byte 1 ## DW_CHILDREN_yes 255f2a7fa6SAlexey Lapshin .byte 0 ## EOM(1) 265f2a7fa6SAlexey Lapshin .byte 0 ## EOM(2) 275f2a7fa6SAlexey Lapshin .byte 2 ## Abbreviation Code 285f2a7fa6SAlexey Lapshin .byte 46 ## DW_TAG_subprogram 295f2a7fa6SAlexey Lapshin .byte 0 ## DW_CHILDREN_no 305f2a7fa6SAlexey Lapshin .byte 17 ## DW_AT_low_pc 315f2a7fa6SAlexey Lapshin .byte 1 ## DW_FORM_addr 325f2a7fa6SAlexey Lapshin .byte 0x55 ## DW_AT_ranges 335f2a7fa6SAlexey Lapshin .byte 6 ## DW_FORM_data4 345f2a7fa6SAlexey Lapshin .byte 0 ## EOM(1) 355f2a7fa6SAlexey Lapshin .byte 0 ## EOM(2) 365f2a7fa6SAlexey Lapshin .byte 0 ## EOM(3) 375f2a7fa6SAlexey Lapshin .section __DWARF,__debug_info,regular,debug 385f2a7fa6SAlexey LapshinLsection_info: 395f2a7fa6SAlexey Lapshin .long 22 ## Length of Unit 405f2a7fa6SAlexey Lapshin .short 2 ## DWARF version number 415f2a7fa6SAlexey Lapshin .long 0 ## Offset Into Abbrev. Section 425f2a7fa6SAlexey Lapshin .byte 8 ## Address Size (in bytes) 435f2a7fa6SAlexey Lapshin .byte 1 ## Abbrev [1] DW_TAG_compile_unit 445f2a7fa6SAlexey Lapshin .byte 2 ## Abbrev [2] DW_TAG_subprogram 455f2a7fa6SAlexey Lapshin .quad Lfunc_begin0 ## DW_AT_low_pc 465f2a7fa6SAlexey Lapshin .long 0 ## DW_AT_ranges (pointing at an empty entry) 475f2a7fa6SAlexey Lapshin .byte 0 ## End Of Children Mark 485f2a7fa6SAlexey Lapshin .section __DWARF,__debug_ranges,regular,debug 495f2a7fa6SAlexey LapshinLdebug_range: 505f2a7fa6SAlexey Lapshin .long 0 515f2a7fa6SAlexey Lapshin .long 0 525f2a7fa6SAlexey Lapshin 535f2a7fa6SAlexey Lapshin# CHECK-NOT: DW_TAG_compile_unit 54