Files
TheRock/compiler/amd-llvm/llvm/test/DebugInfo/X86/debug-cu-index-overlap.s
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

101 lines
4.0 KiB
ArmAsm

# RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o - | \
# RUN: not llvm-dwarfdump -debug-cu-index -debug-tu-index --verify - | FileCheck %s
# FIXME: The verifier should probably be handled to verify the hash table
# itself - in which case this test would need to be updated to have a correct
# hash table (currently hand crafted with no attempt at correct allocation of
# hashes to buckets) - and probably to verify that the section ranges apply to
# sections that exist, which currently they don't
# This tests that an index that describes units as being in overlapping
# sections is invalid (this was observed in the wild due to overflow due to the
# 32 bit limit of the indexes (a DWARF spec bug - there should be a 64 bit
# version of the index format with 64 bit offsets/sizes)) - but Type Units will
# generally share all the sections other than the info section with each other
# (and with their originating CU) since the dwo format has no way to describe
# which part of non-info-section contributions are used by which units, so
# they're all shared. So demonstrate that the TU index ignores non-info overlap,
# but the CU index diagnoses such overlap (in the abbrev section, in this case)
# This doesn't currently check for info section overlap between the CU and TU
# index, but that could be an extension of this work in the future.
# CHECK: Verifying .debug_cu_index...
# CHECK: error: overlapping index entries for entries 0x0000000000000001 and 0x0000000000000002 for column DW_SECT_ABBREV
# CHECK: Verifying .debug_tu_index...
# CHECK: error: overlapping index entries for entries 0x0000000000000001 and 0x0000000000000003 for column DW_SECT_INFO
.section .debug_cu_index, "", @progbits
## Header:
.long 5 # Version
.long 2 # Section count
.long 3 # Unit count
.long 4 # Slot count
## Hash Table of Signatures:
.quad 0x0000000000000001
.quad 0x0000000000000002
.quad 0x0000000000000003
.quad 0
## Parallel Table of Indexes:
.long 1
.long 2
.long 3
.long 0
## Table of Section Offsets:
## Row 0:
.long 1 # DW_SECT_INFO
.long 3 # DW_SECT_ABBREV
## Row 1:
.long 0x1 # Offset in .debug_info.dwo
.long 0x1 # Offset in .debug_abbrev.dwo
## Row 2:
.long 0x2 # Offset in .debug_info.dwo
.long 0x1 # Offset in .debug_abbrev.dwo
## Row 3:
.long 0x1 # Offset in .debug_info.dwo
.long 0x1 # Offset in .debug_abbrev.dwo
## Table of Section Sizes:
.long 0x1 # Size in .debug_info.dwo
.long 0x1 # Size in .debug_abbrev.dwo
.long 0x1 # Size in .debug_info.dwo
.long 0x1 # Size in .debug_abbrev.dwo
.long 0x1 # Size in .debug_info.dwo
.long 0x1 # Size in .debug_abbrev.dwo
.section .debug_tu_index, "", @progbits
## Header:
.long 5 # Version
.long 2 # Section count
.long 3 # Unit count
.long 4 # Slot count
## Hash Table of Signatures:
.quad 0x0000000000000001
.quad 0x0000000000000002
.quad 0x0000000000000003
.quad 0
## Parallel Table of Indexes:
.long 1
.long 2
.long 3
.long 0
## Table of Section Offsets:
## Row 0:
.long 1 # DW_SECT_INFO
.long 3 # DW_SECT_ABBREV
## Row 1:
.long 0x1 # Offset in .debug_info.dwo
.long 0x1 # Offset in .debug_abbrev.dwo
## Row 2:
.long 0x2 # Offset in .debug_info.dwo
.long 0x1 # Offset in .debug_abbrev.dwo
## Row 3:
.long 0x1 # Offset in .debug_info.dwo
.long 0x1 # Offset in .debug_abbrev.dwo
## Table of Section Sizes:
.long 0x1 # Size in .debug_info.dwo
.long 0x1 # Size in .debug_abbrev.dwo
.long 0x1 # Size in .debug_info.dwo
.long 0x1 # Size in .debug_abbrev.dwo
.long 0x1 # Size in .debug_info.dwo
.long 0x1 # Size in .debug_abbrev.dwo