xref: /llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/empty_range.s (revision f1fdfe6888f93b9f6dfb4689e1f3206de584ff5b)
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