This patch renames values of dsymutil/llvm-dwarfutil options: --linker apple -> --linker classic --linker llvm -> --linker parallel The purpose to rename options is to avoid using vendor names and to match with library names. It should be safe to rename options at current stage as they are not seemed widely used(we may not preserve backward compatibility).
157 lines
5.0 KiB
Plaintext
157 lines
5.0 KiB
Plaintext
## This test checks that debug info contained in the source file is properly
|
|
## verified by --verify after copying. If --no-garbage-collection is
|
|
## specified then the verification should fail, otherwise the verification
|
|
## should succeed.
|
|
|
|
# RUN: yaml2obj %s -o %t.o
|
|
|
|
## Verify resulting debug info after --garbage-collection optimisation.
|
|
# RUN: llvm-dwarfutil %t.o %t1 --verify
|
|
# RUN: llvm-dwarfutil --linker parallel %t.o %t1 --verify
|
|
|
|
## Verify separate debug file after --garbage-collection optimisation.
|
|
# RUN: llvm-dwarfutil %t.o --separate-debug-file %t1 --verify
|
|
# RUN: llvm-dwarfutil --linker parallel %t.o --separate-debug-file %t1 --verify
|
|
|
|
## Verify not optimised resulting debug info.
|
|
# RUN: not llvm-dwarfutil --no-garbage-collection %t.o %t1 --verify 2>&1 | FileCheck %s -DFILE=%t1
|
|
# RUN: not llvm-dwarfutil --linker parallel --no-garbage-collection %t.o %t1 --verify 2>&1 | FileCheck %s -DFILE=%t1
|
|
|
|
## Verify not optimised resulting separate debug file.
|
|
# RUN: not llvm-dwarfutil --no-garbage-collection %t.o --separate-debug-file %t1 --verify 2>&1 | FileCheck %s -DFILE=%t1.debug
|
|
# RUN: not llvm-dwarfutil --linker parallel --no-garbage-collection %t.o --separate-debug-file %t1 --verify 2>&1 | FileCheck %s -DFILE=%t1.debug
|
|
|
|
## Check that verification is disabled when destination is stdout.
|
|
# RUN: llvm-dwarfutil %t.o - --verify 2>&1 | FileCheck %s --check-prefix=CHECK-STDOUT
|
|
# RUN: llvm-dwarfutil --linker parallel %t.o - --verify 2>&1 | FileCheck %s --check-prefix=CHECK-STDOUT
|
|
|
|
# CHECK: error: '[[FILE]]': output verification failed
|
|
# CHECK-STDOUT: warning: verification skipped because writing to stdout
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_X86_64
|
|
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
|
|
- Attribute: DW_AT_low_pc
|
|
Form: DW_FORM_addr
|
|
- Attribute: DW_AT_high_pc
|
|
Form: DW_FORM_data8
|
|
- Tag: DW_TAG_subprogram
|
|
Children: DW_CHILDREN_no
|
|
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_data8
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Tag: DW_TAG_class_type
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_member
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_class_type
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_declaration
|
|
Form: DW_FORM_flag_present
|
|
- Tag: DW_TAG_class_type
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_declaration
|
|
Form: DW_FORM_flag_present
|
|
- Tag: DW_TAG_template_type_parameter
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Tag: DW_TAG_base_type
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
debug_info:
|
|
- Version: 4
|
|
Entries:
|
|
- AbbrCode: 1
|
|
Values:
|
|
- CStr: by_hand
|
|
- Value: 0x04
|
|
- CStr: CU1
|
|
- Value: 0x1000
|
|
- Value: 0x100
|
|
- AbbrCode: 3
|
|
Values:
|
|
- CStr: class1
|
|
- AbbrCode: 4
|
|
Values:
|
|
- Value: 0x0000006c
|
|
- CStr: member1
|
|
- AbbrCode: 0
|
|
- AbbrCode: 3
|
|
Values:
|
|
- CStr: class2
|
|
- AbbrCode: 4
|
|
Values:
|
|
- Value: 0x0000006c
|
|
- CStr: member1
|
|
- AbbrCode: 0
|
|
- AbbrCode: 3
|
|
Values:
|
|
- CStr: class3
|
|
- AbbrCode: 4
|
|
Values:
|
|
- Value: 0x0000006c
|
|
- CStr: member1
|
|
- AbbrCode: 0
|
|
- AbbrCode: 8
|
|
Values:
|
|
- CStr: int
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: foo1
|
|
- Value: 0x1000
|
|
- Value: 0x10
|
|
- Value: 0x0000002a
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: foo2
|
|
- Value: 0x0
|
|
- Value: 0x100
|
|
- Value: 0x00000040
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: foo3
|
|
- Value: 0x0
|
|
- Value: 0x100
|
|
- Value: 0x00000040
|
|
- AbbrCode: 0
|
|
...
|