aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/ObjectYAML/MachO
diff options
context:
space:
mode:
authorXing GUO <higuoxing@gmail.com>2020-09-04 22:41:25 +0800
committerXing GUO <higuoxing@gmail.com>2020-09-04 22:42:45 +0800
commit2966d6e80b77c97f65805920d4d3288885de53c9 (patch)
tree79b4c078ac55c124b14b94f651747a9acd331cc9 /llvm/test/ObjectYAML/MachO
parent3404add4684d5959d1ed997149d9896d136d4d3c (diff)
downloadllvm-2966d6e80b77c97f65805920d4d3288885de53c9.zip
llvm-2966d6e80b77c97f65805920d4d3288885de53c9.tar.gz
llvm-2966d6e80b77c97f65805920d4d3288885de53c9.tar.bz2
[MachOYAML] Allow handcrafting custom contents for DWARF sections.
This patch enables users to handcraft custom contents for DWARF sections. If we specify the contents of DWARF sections both in the 'DWARF' entry and the 'content', yaml2obj will emit an error message. In addition, this patch helps remove the restriction that only the content of sections whose segname are __DWARF can be specified in the "DWARF" entry. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D87126
Diffstat (limited to 'llvm/test/ObjectYAML/MachO')
-rw-r--r--llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml4
-rw-r--r--llvm/test/ObjectYAML/MachO/dwarf-content-conflict.yaml45
2 files changed, 45 insertions, 4 deletions
diff --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml b/llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml
index fced0be..8948bf9 100644
--- a/llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml
+++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml
@@ -93,7 +93,6 @@ LoadCommands:
reserved1: 0x00000000
reserved2: 0x00000000
reserved3: 0x00000000
- content: 011101030E1305110155170000022E00030E110112060000032E00030E11011201000000
- sectname: __debug_info
segname: __DWARF
addr: 0x0000000000000024
@@ -106,7 +105,6 @@ LoadCommands:
reserved1: 0x00000000
reserved2: 0x00000000
reserved3: 0x00000000
- content: 520000000400000000000801010000000400000000000000000000000000020D000000000000000000000020000000031700000000000000000000003000000000000000022100000000100000000000000010000000
- sectname: __debug_ranges
segname: __DWARF
addr: 0x000000000000007A
@@ -119,7 +117,6 @@ LoadCommands:
reserved1: 0x00000000
reserved2: 0x00000000
reserved3: 0x00000000
- content: 0000000000000000200000000000000000000000000000003000000000000000FFFFFFFFFFFFFFFF00100000000000000000000000000000001000000000000000000000000000000000000000000000
- sectname: __debug_str
segname: __DWARF
addr: 0x00000000000000CA
@@ -132,7 +129,6 @@ LoadCommands:
reserved1: 0x00000000
reserved2: 0x00000000
reserved3: 0x00000000
- content: 002F746D702F6D61696E2E630073747269707065643100737472697070656432006D61696E00
- cmd: LC_SYMTAB
cmdsize: 24
symoff: 0
diff --git a/llvm/test/ObjectYAML/MachO/dwarf-content-conflict.yaml b/llvm/test/ObjectYAML/MachO/dwarf-content-conflict.yaml
new file mode 100644
index 0000000..a4b2b48
--- /dev/null
+++ b/llvm/test/ObjectYAML/MachO/dwarf-content-conflict.yaml
@@ -0,0 +1,45 @@
+## Test that yaml2obj emits an error message if we specify the DWARF section
+## contents both in the 'DWARF' entry and in the 'content'.
+
+# RUN: not yaml2obj %s 2>&1 | FileCheck %s --check-prefix=CONFLICT
+
+# CONFLICT: yaml2obj: error: cannot specify section '__debug_str' contents in the 'DWARF' entry and the 'content' at the same time
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x01000007
+ cpusubtype: 0x00000003
+ filetype: 0x0000000A
+ ncmds: 1
+ sizeofcmds: 232
+ flags: 0x00000000
+ reserved: 0x00000000
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 152
+ segname: __DWARF
+ vmaddr: 0x00
+ vmsize: 0x00
+ fileoff: 0x00
+ filesize: 0x00
+ maxprot: 0
+ initprot: 0
+ nsects: 1
+ flags: 0
+ Sections:
+ - sectname: __debug_str
+ segname: __DWARF
+ addr: 0x00
+ size: 12
+ offset: 528
+ align: 0
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x00000000
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ content: 1234
+DWARF:
+ debug_str: [ a, abc ]