Alexey Lapshin 5f2a7fa67e [Reland][Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.
This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not supported yet:

1. Types deduplication(--odr mode).
2. Modules deduplication.
3. Generation of index tables.

Reland2: temporarily disabled call to "--linker llvm" for tls-variable.test
and location-expression.test as it does not work properly on bigendian
architecture.

Differential Revision: https://reviews.llvm.org/D153268
2023-08-21 11:09:18 +02:00

54 lines
2.2 KiB
ArmAsm

# This test verifies that an empty range list in the .debug_ranges section
# doesn't crash dsymutil. As clang does not produce this kind of debug
# info anymore, we used this hand-crafted assembly file to produce a testcase
# Compile with:
# llvm-mc -triple x86_64-apple-darwin -filetype=obj -o 1.o empty_range.o
# RUN: dsymutil --linker llvm -f -y %p/../dummy-debug-map.map -oso-prepend-path %p/../../Inputs/empty_range -o - | llvm-dwarfdump -debug-info - | FileCheck %s
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 11
.globl __Z3foov
.align 4, 0x90
__Z3foov: ## @_Z3foov
Lfunc_begin0:
pushq %rbp
movq %rsp, %rbp
popq %rbp
retq
Lfunc_end0:
.section __DWARF,__debug_abbrev,regular,debug
Lsection_abbrev:
.byte 1 ## Abbreviation Code
.byte 17 ## DW_TAG_compile_unit
.byte 1 ## DW_CHILDREN_yes
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 2 ## Abbreviation Code
.byte 46 ## DW_TAG_subprogram
.byte 0 ## DW_CHILDREN_no
.byte 17 ## DW_AT_low_pc
.byte 1 ## DW_FORM_addr
.byte 0x55 ## DW_AT_ranges
.byte 6 ## DW_FORM_data4
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 0 ## EOM(3)
.section __DWARF,__debug_info,regular,debug
Lsection_info:
.long 22 ## Length of Unit
.short 2 ## DWARF version number
.long 0 ## Offset Into Abbrev. Section
.byte 8 ## Address Size (in bytes)
.byte 1 ## Abbrev [1] DW_TAG_compile_unit
.byte 2 ## Abbrev [2] DW_TAG_subprogram
.quad Lfunc_begin0 ## DW_AT_low_pc
.long 0 ## DW_AT_ranges (pointing at an empty entry)
.byte 0 ## End Of Children Mark
.section __DWARF,__debug_ranges,regular,debug
Ldebug_range:
.long 0
.long 0
# CHECK-NOT: DW_TAG_compile_unit