Higuoxing updated this revision to Diff 292719.
Higuoxing added a comment.

In D87878#2281189 <https://reviews.llvm.org/D87878#2281189>, @jhenderson wrote:

> I might be missing it, but do you have direct testing showing that the 
> default for `IncludeDirs`\`Files`\`Opcodes` is an empty output, when the 
> output is written? I think it's important that this is tested.

Sorry, I didn't test it.

Add test case (k) in llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D87878/new/

https://reviews.llvm.org/D87878

Files:
  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

Index: llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
===================================================================
--- llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
+++ llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
@@ -92,7 +92,6 @@
           DirIdx:  2
           ModTime: 3
           Length:  4
-      Opcodes: []
 
 ## Generate and verify a big endian DWARF32 .debug_line section.
 
@@ -211,9 +210,6 @@
       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 @@
       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 @@
       LineRange:             14
       OpcodeBase:            13
       StandardOpcodeLengths: []
-      IncludeDirs:           []
-      Files:                 []
-      Opcodes:               []
 
 ## h) Test that the address size is inferred from the target machine.
 
@@ -355,8 +345,6 @@
       LineRange:             14
       OpcodeBase:            13
       StandardOpcodeLengths: []
-      IncludeDirs:           []
-      Files:                 []
       Opcodes:
         - Opcode:    DW_LNS_extended_op
           ExtLen:    9
@@ -439,8 +427,6 @@
       LineRange:             14
       OpcodeBase:            13
       StandardOpcodeLengths: []
-      IncludeDirs:           []
-      Files:                 []
       Opcodes:
         - Opcode:    DW_LNS_copy
         - Opcode:    DW_LNS_advance_pc
@@ -591,3 +577,42 @@
         - 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 ]
Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
===================================================================
--- llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
+++ llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
@@ -469,7 +469,6 @@
       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
Index: llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
===================================================================
--- llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
+++ llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml
@@ -688,7 +688,6 @@
       LineRange:       14
       OpcodeBase:      13
       StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
-      IncludeDirs:     []
       Files:
         - Name:            main.cpp
           DirIdx:          0
Index: llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
===================================================================
--- llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
+++ llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml
@@ -472,7 +472,6 @@
           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 @@
           LineRange:       14
           OpcodeBase:      13
           StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
-          IncludeDirs:     []
           Files:
             - Name:            main.cpp
               DirIdx:          0
Index: llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
===================================================================
--- llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
+++ llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
@@ -113,6 +113,4 @@
       StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
       IncludeDirs:
         - '/tmp'
-      Files:
-      Opcodes:         []
 ...
Index: llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
===================================================================
--- llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
+++ llvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
@@ -118,5 +118,4 @@
           DirIdx:          1
           ModTime:         0
           Length:          0
-      Opcodes:         []
 ...
Index: llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
===================================================================
--- llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
+++ llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
@@ -479,7 +479,6 @@
         - 0
         - 0
         - 1
-      IncludeDirs:     
       Files:           
         - Name:            hello_world.c
           DirIdx:          0
Index: llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
===================================================================
--- llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
+++ llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
@@ -499,7 +499,6 @@
       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 @@
 # 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
Index: llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
===================================================================
--- llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
+++ llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
@@ -478,7 +478,6 @@
         - 0
         - 0
         - 1
-      IncludeDirs:     
       Files:           
         - Name:            hello_world.c
           DirIdx:          0
Index: llvm/lib/ObjectYAML/DWARFYAML.cpp
===================================================================
--- llvm/lib/ObjectYAML/DWARFYAML.cpp
+++ llvm/lib/ObjectYAML/DWARFYAML.cpp
@@ -246,9 +246,9 @@
   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(
Index: lldb/unittests/Symbol/Inputs/inlined-functions.yaml
===================================================================
--- lldb/unittests/Symbol/Inputs/inlined-functions.yaml
+++ lldb/unittests/Symbol/Inputs/inlined-functions.yaml
@@ -711,7 +711,6 @@
       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
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to