mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[DWARFYAML] Make the include_directories, file_names and opcodes fields of the line table optional.
This patch makes the include_directories, file_names and opcodes fields of the line table optional. This helps us simplify some tests. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D87878
This commit is contained in:
parent
2a69cdbaed
commit
3c2809fd0d
@ -246,9 +246,9 @@ void MappingTraits<DWARFYAML::LineTable>::mapping(
|
||||
IO.mapRequired("LineRange", LineTable.LineRange);
|
||||
IO.mapRequired("OpcodeBase", LineTable.OpcodeBase);
|
||||
IO.mapRequired("StandardOpcodeLengths", LineTable.StandardOpcodeLengths);
|
||||
IO.mapRequired("IncludeDirs", LineTable.IncludeDirs);
|
||||
IO.mapRequired("Files", LineTable.Files);
|
||||
IO.mapRequired("Opcodes", LineTable.Opcodes);
|
||||
IO.mapOptional("IncludeDirs", LineTable.IncludeDirs);
|
||||
IO.mapOptional("Files", LineTable.Files);
|
||||
IO.mapOptional("Opcodes", LineTable.Opcodes);
|
||||
}
|
||||
|
||||
void MappingTraits<DWARFYAML::SegAddrPair>::mapping(
|
||||
|
@ -478,7 +478,6 @@ DWARF:
|
||||
- 0
|
||||
- 0
|
||||
- 1
|
||||
IncludeDirs:
|
||||
Files:
|
||||
- Name: hello_world.c
|
||||
DirIdx: 0
|
||||
|
@ -499,7 +499,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
IncludeDirs:
|
||||
Files:
|
||||
- Name: hello_world.c
|
||||
DirIdx: 0
|
||||
@ -540,7 +539,6 @@ DWARF:
|
||||
# CHECK-NEXT: LineRange: 14
|
||||
# CHECK-NEXT: OpcodeBase: 13
|
||||
# CHECK-NEXT: StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
# CHECK-NEXT: IncludeDirs:
|
||||
# CHECK-NEXT: Files:
|
||||
# CHECK-NEXT: - Name: hello_world.c
|
||||
# CHECK-NEXT: DirIdx: 0
|
||||
|
@ -479,7 +479,6 @@ DWARF:
|
||||
- 0
|
||||
- 0
|
||||
- 1
|
||||
IncludeDirs:
|
||||
Files:
|
||||
- Name: hello_world.c
|
||||
DirIdx: 0
|
||||
|
@ -118,5 +118,4 @@ DWARF:
|
||||
DirIdx: 1
|
||||
ModTime: 0
|
||||
Length: 0
|
||||
Opcodes: []
|
||||
...
|
||||
|
@ -113,6 +113,4 @@ DWARF:
|
||||
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
IncludeDirs:
|
||||
- '/tmp'
|
||||
Files:
|
||||
Opcodes: []
|
||||
...
|
||||
|
@ -472,7 +472,6 @@ Slices:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
IncludeDirs: []
|
||||
Files:
|
||||
- Name: main.cpp
|
||||
DirIdx: 0
|
||||
@ -941,7 +940,6 @@ Slices:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
IncludeDirs: []
|
||||
Files:
|
||||
- Name: main.cpp
|
||||
DirIdx: 0
|
||||
|
@ -688,7 +688,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
IncludeDirs: []
|
||||
Files:
|
||||
- Name: main.cpp
|
||||
DirIdx: 0
|
||||
|
@ -469,7 +469,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
|
||||
IncludeDirs: []
|
||||
Files:
|
||||
- Name: strip-test.c
|
||||
DirIdx: 0
|
||||
|
@ -92,7 +92,6 @@ DWARF:
|
||||
DirIdx: 2
|
||||
ModTime: 3
|
||||
Length: 4
|
||||
Opcodes: []
|
||||
|
||||
## Generate and verify a big endian DWARF32 .debug_line section.
|
||||
|
||||
@ -211,9 +210,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: []
|
||||
IncludeDirs: []
|
||||
Files: []
|
||||
Opcodes: []
|
||||
|
||||
## e) Test that yaml2obj emits an error message when both the "Content" and the
|
||||
## "debug_line" entry are specified at the same time.
|
||||
@ -240,9 +236,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: []
|
||||
IncludeDirs: []
|
||||
Files: []
|
||||
Opcodes: []
|
||||
|
||||
## f) Test that all the properties can be overridden by the section header when
|
||||
## the "debug_line" entry doesn't exist.
|
||||
@ -307,9 +300,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: []
|
||||
IncludeDirs: []
|
||||
Files: []
|
||||
Opcodes: []
|
||||
|
||||
## h) Test that the address size is inferred from the target machine.
|
||||
|
||||
@ -355,8 +345,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: []
|
||||
IncludeDirs: []
|
||||
Files: []
|
||||
Opcodes:
|
||||
- Opcode: DW_LNS_extended_op
|
||||
ExtLen: 9
|
||||
@ -439,8 +427,6 @@ DWARF:
|
||||
LineRange: 14
|
||||
OpcodeBase: 13
|
||||
StandardOpcodeLengths: []
|
||||
IncludeDirs: []
|
||||
Files: []
|
||||
Opcodes:
|
||||
- Opcode: DW_LNS_copy
|
||||
- Opcode: DW_LNS_advance_pc
|
||||
@ -591,3 +577,42 @@ DWARF:
|
||||
- Opcode: DW_LNS_extended_op
|
||||
ExtLen: 1
|
||||
SubOpcode: DW_LNE_end_sequence
|
||||
|
||||
## k) Test that we can omit the include_directories, file_names and opcodes
|
||||
## fields of the line table.
|
||||
|
||||
# RUN: yaml2obj --docnum=11 %s -o %t11.o
|
||||
# RUN: llvm-readelf --hex-dump=.debug_line %t11.o | \
|
||||
# RUN: FileCheck %s --check-prefix=OMIT-FIELDS
|
||||
|
||||
# OMIT-FIELDS: Hex dump of section '.debug_line':
|
||||
# OMIT-FIELDS-NEXT: 0x00000000 11000000 04000b00 00000101 01fb0e04 ................
|
||||
## ^------- unit_length (4-byte)
|
||||
## ^--- version (2-byte)
|
||||
## ^-------- header_length (4-byte)
|
||||
## ^- minimum_instruction_length (1-byte)
|
||||
## ^- maximum_operations_per_instruction (1-byte)
|
||||
## ^- default_is_stmt (1-byte)
|
||||
## ^- line_base (1-byte) -5
|
||||
## ^- line_range (1-byte)
|
||||
## ^- opcode_base (1-byte)
|
||||
# OMIT-FIELDS-NEXT: 0x00000010 00010100 00 .....
|
||||
## ^----- standard_opcode_lengths (3-byte)
|
||||
## ^- include_directories null byte (1-byte)
|
||||
## ^- file_names null byte (1-byte)
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
DWARF:
|
||||
debug_line:
|
||||
- Version: 4
|
||||
MinInstLength: 1
|
||||
MaxOpsPerInst: 1
|
||||
DefaultIsStmt: 1
|
||||
LineBase: 251
|
||||
LineRange: 14
|
||||
OpcodeBase: 4
|
||||
StandardOpcodeLengths: [ 0, 1, 1 ]
|
||||
|
Loading…
Reference in New Issue
Block a user