[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