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
370 lines
12 KiB
Plaintext
370 lines
12 KiB
Plaintext
# RUN: yaml2obj %s -o %t.o
|
|
# RUN: echo '---' > %t2.map
|
|
# RUN: echo "triple: 'x86_64-apple-darwin'" >> %t2.map
|
|
# RUN: echo 'objects:' >> %t2.map
|
|
# RUN: echo " - filename: '%t.o'" >> %t2.map
|
|
# RUN: echo ' symbols:' >> %t2.map
|
|
# RUN: echo ' - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 }' >> %t2.map
|
|
# RUN: echo '...' >> %t2.map
|
|
# RUN: dsymutil --linker classic -f -y %t2.map -o - | llvm-dwarfdump --debug-info - | FileCheck %s
|
|
# RUN: dsymutil --linker parallel -f -y %t2.map -o - | llvm-dwarfdump --debug-info - | FileCheck --check-prefix=PARALLEL %s
|
|
|
|
## Test that dsymutil correctly handles -gsimple-template-names, where
|
|
## DW_AT_name does not include template parameters and template arguments are
|
|
## represented as DW_TAG_template_type_parameter children instead.
|
|
##
|
|
## CU1 defines MyTemplate<int> and MyTemplate<float> (both named "MyTemplate").
|
|
## CU2 defines MyTemplate<float> (also named "MyTemplate").
|
|
##
|
|
## dsymutil must not incorrectly unify MyTemplate<int> with MyTemplate<float>.
|
|
## CU2's MyTemplate<float> should unify with CU1's MyTemplate<float>.
|
|
|
|
## Classic linker: CU1 keeps both specializations. CU2's type reference is
|
|
## redirected to CU1's MyTemplate<float>.
|
|
##
|
|
## Type references use 0x00000000[[VAR]] to match DWARF32 ref_addr (8 hex digit
|
|
## DIE offset zero-extended to 16 hex digits for the 8-byte ref_addr).
|
|
# CHECK: .debug_info contents:
|
|
# CHECK: DW_TAG_compile_unit
|
|
# CHECK-NOT: DW_TAG
|
|
# CHECK: DW_AT_name{{.*}}"CU1"
|
|
# CHECK: 0x[[TMPL_INT:[0-9a-f]*]]: DW_TAG_class_type
|
|
# CHECK-NEXT: DW_AT_name{{.*}}"MyTemplate"
|
|
# CHECK: DW_TAG_template_type_parameter
|
|
# CHECK: DW_AT_type{{.*}}"int"
|
|
# CHECK: 0x[[TMPL_FLOAT:[0-9a-f]*]]: DW_TAG_class_type
|
|
# CHECK-NEXT: DW_AT_name{{.*}}"MyTemplate"
|
|
# CHECK: DW_TAG_template_type_parameter
|
|
# CHECK: DW_AT_type{{.*}}"float"
|
|
# CHECK: DW_TAG_variable
|
|
# CHECK: DW_AT_name{{.*}}"var1"
|
|
# CHECK: DW_AT_type{{.*}}0x00000000[[TMPL_INT]] "MyTemplate
|
|
# CHECK: DW_TAG_variable
|
|
# CHECK: DW_AT_name{{.*}}"var2"
|
|
# CHECK: DW_AT_type{{.*}}0x00000000[[TMPL_FLOAT]] "MyTemplate
|
|
# CHECK: DW_TAG_compile_unit
|
|
# CHECK-NOT: DW_TAG
|
|
# CHECK: DW_AT_name{{.*}}"CU2"
|
|
# CHECK: DW_TAG_variable
|
|
# CHECK: DW_AT_name{{.*}}"var3"
|
|
# CHECK: DW_AT_type{{.*}}0x00000000[[TMPL_FLOAT]] "MyTemplate
|
|
|
|
## Parallel linker: types go to artificial type CU with separate entries.
|
|
# PARALLEL: .debug_info contents:
|
|
# PARALLEL: DW_TAG_compile_unit
|
|
# PARALLEL: DW_AT_name{{.*}}"__artificial_type_unit"
|
|
# PARALLEL: 0x[[TMPL_FLOAT:[0-9a-f]*]]: DW_TAG_class_type
|
|
# PARALLEL: DW_AT_name{{.*}}"MyTemplate"
|
|
# PARALLEL: DW_TAG_template_type_parameter
|
|
# PARALLEL: DW_AT_type{{.*}}"float"
|
|
# PARALLEL: 0x[[TMPL_INT:[0-9a-f]*]]: DW_TAG_class_type
|
|
# PARALLEL: DW_AT_name{{.*}}"MyTemplate"
|
|
# PARALLEL: DW_TAG_template_type_parameter
|
|
# PARALLEL: DW_AT_type{{.*}}"int"
|
|
# PARALLEL: DW_TAG_compile_unit
|
|
# PARALLEL: DW_AT_name{{.*}}"CU1"
|
|
# PARALLEL: DW_TAG_variable
|
|
# PARALLEL: DW_AT_name{{.*}}"var1"
|
|
# PARALLEL: DW_AT_type{{.*}}0x00000000[[TMPL_INT]]
|
|
# PARALLEL: DW_TAG_variable
|
|
# PARALLEL: DW_AT_name{{.*}}"var2"
|
|
# PARALLEL: DW_AT_type{{.*}}0x00000000[[TMPL_FLOAT]]
|
|
# PARALLEL: DW_TAG_compile_unit
|
|
# PARALLEL: DW_AT_name{{.*}}"CU2"
|
|
# PARALLEL: DW_TAG_variable
|
|
# PARALLEL: DW_AT_name{{.*}}"var3"
|
|
# PARALLEL: DW_AT_type{{.*}}0x00000000[[TMPL_FLOAT]]
|
|
|
|
## ---- Mach-O + DWARF definition ----
|
|
##
|
|
## CU1 debug_info layout (starting at 0x00):
|
|
## 0x00: CU header (11 bytes)
|
|
## 0x0b: DW_TAG_compile_unit
|
|
## 0x1a: DW_TAG_class_type "MyTemplate" (template param T -> int at 0x44)
|
|
## 0x2f: DW_TAG_class_type "MyTemplate" (template param T -> float at 0x49)
|
|
## 0x44: DW_TAG_base_type "int"
|
|
## 0x49: DW_TAG_base_type "float"
|
|
## 0x50: DW_TAG_subprogram "foo" (low_pc at section offset 0x55)
|
|
## 0x61: DW_TAG_variable "var1" (type -> 0x1a)
|
|
## 0x6f: DW_TAG_variable "var2" (type -> 0x2f)
|
|
## 0x7e: end CU1
|
|
##
|
|
## CU2 debug_info layout (starting at 0x7f):
|
|
## 0x7f: CU header (11 bytes)
|
|
## 0x8a: DW_TAG_compile_unit
|
|
## 0x99: DW_TAG_class_type "MyTemplate" (template param T -> float at 0xb3)
|
|
## 0xae: DW_TAG_base_type "int"
|
|
## 0xb3: DW_TAG_base_type "float"
|
|
## 0xba: DW_TAG_subprogram "foo" (low_pc at section offset 0xbf)
|
|
## 0xcb: DW_TAG_variable "var3" (type -> 0x99)
|
|
## 0xda: end CU2
|
|
|
|
--- !mach-o
|
|
FileHeader:
|
|
magic: 0xFEEDFACF
|
|
cputype: 0x01000007
|
|
cpusubtype: 0x00000003
|
|
filetype: 0x00000001
|
|
ncmds: 2
|
|
sizeofcmds: 376
|
|
flags: 0x00002000
|
|
reserved: 0x00000000
|
|
LoadCommands:
|
|
- cmd: LC_SEGMENT_64
|
|
cmdsize: 232
|
|
segname: ''
|
|
vmaddr: 0x00
|
|
vmsize: 0x300
|
|
fileoff: 0x300
|
|
filesize: 0x300
|
|
maxprot: 7
|
|
initprot: 7
|
|
nsects: 2
|
|
flags: 0
|
|
Sections:
|
|
- sectname: __debug_abbrev
|
|
segname: __DWARF
|
|
addr: 0x000000000000000F
|
|
size: 0x76
|
|
offset: 0x00000380
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_info
|
|
segname: __DWARF
|
|
addr: 0x000000000000100
|
|
size: 0xDB
|
|
offset: 0x000003F6
|
|
align: 0
|
|
reloff: 0x00000600
|
|
nreloc: 2
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
relocations:
|
|
- address: 0x55
|
|
symbolnum: 0
|
|
pcrel: false
|
|
length: 3
|
|
extern: true
|
|
type: 0
|
|
scattered: false
|
|
value: 0
|
|
- address: 0xBF
|
|
symbolnum: 0
|
|
pcrel: false
|
|
length: 3
|
|
extern: true
|
|
type: 0
|
|
scattered: false
|
|
value: 0
|
|
- cmd: LC_SYMTAB
|
|
cmdsize: 24
|
|
symoff: 0x700
|
|
nsyms: 1
|
|
stroff: 0x710
|
|
strsize: 10
|
|
LinkEditData:
|
|
NameList:
|
|
- n_strx: 1
|
|
n_type: 0x0F
|
|
n_sect: 1
|
|
n_desc: 0
|
|
n_value: 0
|
|
StringTable:
|
|
- ''
|
|
- '__Z3foov'
|
|
- ''
|
|
DWARF:
|
|
debug_abbrev:
|
|
- Table:
|
|
- Tag: DW_TAG_compile_unit
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_producer
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_language
|
|
Form: DW_FORM_data2
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_class_type
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_byte_size
|
|
Form: DW_FORM_data1
|
|
- Tag: DW_TAG_template_type_parameter
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_base_type
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_subprogram
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_low_pc
|
|
Form: DW_FORM_addr
|
|
- Attribute: DW_AT_high_pc
|
|
Form: DW_FORM_data4
|
|
- Tag: DW_TAG_variable
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_const_value
|
|
Form: DW_FORM_data4
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
- Table:
|
|
- Tag: DW_TAG_compile_unit
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_producer
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_language
|
|
Form: DW_FORM_data2
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_class_type
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_byte_size
|
|
Form: DW_FORM_data1
|
|
- Tag: DW_TAG_template_type_parameter
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_base_type
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_subprogram
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_low_pc
|
|
Form: DW_FORM_addr
|
|
- Attribute: DW_AT_high_pc
|
|
Form: DW_FORM_data4
|
|
- Tag: DW_TAG_variable
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_const_value
|
|
Form: DW_FORM_data4
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
debug_info:
|
|
- Version: 4
|
|
Entries:
|
|
- AbbrCode: 1
|
|
Values:
|
|
- CStr: by_hand
|
|
- Value: 0x04
|
|
- CStr: CU1
|
|
## 0x1a: MyTemplate<int> (simple template name)
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: MyTemplate
|
|
- Value: 0x04
|
|
- AbbrCode: 3
|
|
Values:
|
|
- Value: 0x00000044
|
|
- CStr: T
|
|
- AbbrCode: 0
|
|
## 0x2f: MyTemplate<float> (simple template name)
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: MyTemplate
|
|
- Value: 0x04
|
|
- AbbrCode: 3
|
|
Values:
|
|
- Value: 0x00000049
|
|
- CStr: T
|
|
- AbbrCode: 0
|
|
## 0x44: base types
|
|
- AbbrCode: 4
|
|
Values:
|
|
- CStr: int
|
|
- AbbrCode: 4
|
|
Values:
|
|
- CStr: float
|
|
## 0x50: subprogram (low_pc at offset 0x55 in section)
|
|
- AbbrCode: 5
|
|
Values:
|
|
- CStr: foo
|
|
- Value: 0x0000000000000000
|
|
- Value: 0x00000010
|
|
- AbbrCode: 6
|
|
Values:
|
|
- CStr: var1
|
|
- Value: 0x00000000
|
|
- Value: 0x0000001a
|
|
- AbbrCode: 6
|
|
Values:
|
|
- CStr: var2
|
|
- Value: 0x00000000
|
|
- Value: 0x0000002f
|
|
- AbbrCode: 0
|
|
- AbbrCode: 0
|
|
- Version: 4
|
|
Entries:
|
|
- AbbrCode: 1
|
|
Values:
|
|
- CStr: by_hand
|
|
- Value: 0x04
|
|
- CStr: CU2
|
|
## 0x99: MyTemplate<float> (simple template name)
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: MyTemplate
|
|
- Value: 0x04
|
|
- AbbrCode: 3
|
|
Values:
|
|
- Value: 0x000000b3
|
|
- CStr: T
|
|
- AbbrCode: 0
|
|
## base types
|
|
- AbbrCode: 4
|
|
Values:
|
|
- CStr: int
|
|
- AbbrCode: 4
|
|
Values:
|
|
- CStr: float
|
|
## 0xba: subprogram (low_pc at offset 0xbf in section)
|
|
- AbbrCode: 5
|
|
Values:
|
|
- CStr: foo
|
|
- Value: 0x0000000000000000
|
|
- Value: 0x00000010
|
|
- AbbrCode: 6
|
|
Values:
|
|
- CStr: var3
|
|
- Value: 0x00000000
|
|
- Value: 0x00000099
|
|
- AbbrCode: 0
|
|
- AbbrCode: 0
|
|
...
|