[Lldb-commits] [lldb] 2d35092 - [DWARFYAML] Make the include_directories, file_names and opcodes fields of the line table optional.
Xing GUO via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 18 05:22:31 PDT 2020
Author: Xing GUO
Date: 2020-09-18T20:21:11+08:00
New Revision: 2d35092cd2589dffbca1e34a3dc68f6df75818a9
URL: https://github.com/llvm/llvm-project/commit/2d35092cd2589dffbca1e34a3dc68f6df75818a9
DIFF: https://github.com/llvm/llvm-project/commit/2d35092cd2589dffbca1e34a3dc68f6df75818a9.diff
LOG: [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
Added:
Modified:
lldb/unittests/Symbol/Inputs/inlined-functions.yaml
llvm/lib/ObjectYAML/DWARFYAML.cpp
llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
Removed:
################################################################################
diff --git a/lldb/unittests/Symbol/Inputs/inlined-functions.yaml b/lldb/unittests/Symbol/Inputs/inlined-functions.yaml
index 050ee869d3c0..8498cf7f6d31 100644
--- a/lldb/unittests/Symbol/Inputs/inlined-functions.yaml
+++ b/lldb/unittests/Symbol/Inputs/inlined-functions.yaml
@@ -711,7 +711,6 @@ DWARF:
LineRange: 14
OpcodeBase: 13
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
- IncludeDirs: []
Files:
- Name: inlined-functions.cpp
DirIdx: 0
diff --git a/llvm/lib/ObjectYAML/DWARFYAML.cpp b/llvm/lib/ObjectYAML/DWARFYAML.cpp
index 975b9b40b6b1..067423e2e7a2 100644
--- a/llvm/lib/ObjectYAML/DWARFYAML.cpp
+++ b/llvm/lib/ObjectYAML/DWARFYAML.cpp
@@ -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(
diff --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
index 7b9d5fa19894..d6bcaf0d754b 100644
--- a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
+++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
@@ -478,7 +478,6 @@ DWARF:
- 0
- 0
- 1
- IncludeDirs:
Files:
- Name: hello_world.c
DirIdx: 0
diff --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml b/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
index 6643e2d5f75a..6ac577f9c83a 100644
--- a/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
+++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
@@ -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
diff --git a/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml b/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
index d016b8c485ee..e0f82e862c8b 100644
--- a/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
+++ b/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
@@ -479,7 +479,6 @@ DWARF:
- 0
- 0
- 1
- IncludeDirs:
Files:
- Name: hello_world.c
DirIdx: 0
diff --git a/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml b/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
index 19d9a6943589..3e1e1ee2e00d 100644
--- a/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
+++ b/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
@@ -118,5 +118,4 @@ DWARF:
DirIdx: 1
ModTime: 0
Length: 0
- Opcodes: []
...
diff --git a/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml b/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
index 9ccf23253784..bdf2fc649e20 100644
--- a/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
+++ b/llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
@@ -113,6 +113,4 @@ DWARF:
StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
IncludeDirs:
- '/tmp'
- Files:
- Opcodes: []
...
diff --git a/llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml b/llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
index 0315e18795bc..1beee56d4779 100644
--- a/llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
+++ b/llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
@@ -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
diff --git a/llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml b/llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
index 8a358ea0700c..abf77d09eb5e 100644
--- a/llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
+++ b/llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
@@ -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
diff --git a/llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml b/llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
index 3ec3b9c7521c..d7ba537b1986 100644
--- a/llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
+++ b/llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
@@ -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
diff --git a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
index 78d873d91670..02c9e8ed72ee 100644
--- a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
+++ b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
@@ -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 ]
More information about the lldb-commits
mailing list