aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2022-08-03 10:50:50 -0700
committerLang Hames <lhames@gmail.com>2022-08-03 17:51:45 -0700
commit4229d2788b6eee3dee4c123455e7ca26371c611c (patch)
tree03fa1a445881e17885ae2a73409502b9f061b66f
parent203296d642c385da07a62098050b08493ed8b236 (diff)
downloadllvm-4229d2788b6eee3dee4c123455e7ca26371c611c.zip
llvm-4229d2788b6eee3dee4c123455e7ca26371c611c.tar.gz
llvm-4229d2788b6eee3dee4c123455e7ca26371c611c.tar.bz2
[JITLink] Add tests for FDEs with bad CIE and PC-begin pointers.
-rw-r--r--llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_cie-ptr_out-of-range.test100
-rw-r--r--llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_pc-begin_out-of-range.test100
2 files changed, 200 insertions, 0 deletions
diff --git a/llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_cie-ptr_out-of-range.test b/llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_cie-ptr_out-of-range.test
new file mode 100644
index 0000000..1bd01e1
--- /dev/null
+++ b/llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_cie-ptr_out-of-range.test
@@ -0,0 +1,100 @@
+# RUN: yaml2obj %s -o %t
+# RUN: not llvm-jitlink -noexec %t 2>&1 | FileCheck %s
+#
+# Check that FDE with bogus CIE pointer triggers an error.
+#
+# CHECK: llvm-jitlink error: No CIE found at address
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x1000007
+ cpusubtype: 0x3
+ filetype: 0x1
+ ncmds: 4
+ sizeofcmds: 360
+ flags: 0x2000
+ reserved: 0x0
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 232
+ segname: ''
+ vmaddr: 0
+ vmsize: 64
+ fileoff: 392
+ filesize: 64
+ maxprot: 7
+ initprot: 7
+ nsects: 2
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0
+ size: 3
+ offset: 0x188
+ align: 4
+ reloff: 0x0
+ nreloc: 0
+ flags: 0x80000400
+ reserved1: 0x0
+ reserved2: 0x0
+ reserved3: 0x0
+ content: 31C0C3
+ - sectname: __eh_frame
+ segname: __TEXT
+ addr: 0x8
+ size: 56
+ offset: 0x190
+ align: 3
+ reloff: 0x0
+ nreloc: 0
+ flags: 0x6800000B
+ reserved1: 0x0
+ reserved2: 0x0
+ reserved3: 0x0
+ content: 1400000000000000017A520001781001100C0708900100001C0000002C000000D8FFFFFFFFFFFFFF03000000000000000000000000000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 24
+ platform: 1
+ minos: 851968
+ sdk: 0
+ ntools: 0
+ - cmd: LC_SYMTAB
+ cmdsize: 24
+ symoff: 456
+ nsyms: 1
+ stroff: 472
+ strsize: 8
+ - cmd: LC_DYSYMTAB
+ cmdsize: 80
+ ilocalsym: 0
+ nlocalsym: 0
+ iextdefsym: 0
+ nextdefsym: 1
+ iundefsym: 1
+ nundefsym: 0
+ tocoff: 0
+ ntoc: 0
+ modtaboff: 0
+ nmodtab: 0
+ extrefsymoff: 0
+ nextrefsyms: 0
+ indirectsymoff: 0
+ nindirectsyms: 0
+ extreloff: 0
+ nextrel: 0
+ locreloff: 0
+ nlocrel: 0
+LinkEditData:
+ NameList:
+ - n_strx: 1
+ n_type: 0xF
+ n_sect: 1
+ n_desc: 0
+ n_value: 0
+ StringTable:
+ - ''
+ - _main
+ - ''
+...
diff --git a/llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_pc-begin_out-of-range.test b/llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_pc-begin_out-of-range.test
new file mode 100644
index 0000000..0a845c9
--- /dev/null
+++ b/llvm/test/ExecutionEngine/JITLink/X86/MachO_ehframe_bad_fde_pc-begin_out-of-range.test
@@ -0,0 +1,100 @@
+# RUN: yaml2obj %s -o %t
+# RUN: not llvm-jitlink -noexec %t 2>&1 | FileCheck %s
+#
+# Check that FDE with bogus PC-begin pointer triggers an error.
+#
+# CHECK: llvm-jitlink error: No symbol or block covering address
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x1000007
+ cpusubtype: 0x3
+ filetype: 0x1
+ ncmds: 4
+ sizeofcmds: 360
+ flags: 0x2000
+ reserved: 0x0
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 232
+ segname: ''
+ vmaddr: 0
+ vmsize: 64
+ fileoff: 392
+ filesize: 64
+ maxprot: 7
+ initprot: 7
+ nsects: 2
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0
+ size: 3
+ offset: 0x188
+ align: 4
+ reloff: 0x0
+ nreloc: 0
+ flags: 0x80000400
+ reserved1: 0x0
+ reserved2: 0x0
+ reserved3: 0x0
+ content: 31C0C3
+ - sectname: __eh_frame
+ segname: __TEXT
+ addr: 0x8
+ size: 56
+ offset: 0x190
+ align: 3
+ reloff: 0x0
+ nreloc: 0
+ flags: 0x6800000B
+ reserved1: 0x0
+ reserved2: 0x0
+ reserved3: 0x0
+ content: 1400000000000000017A520001781001100C0708900100001C0000001C000000000000000000001003000000000000000000000000000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 24
+ platform: 1
+ minos: 851968
+ sdk: 0
+ ntools: 0
+ - cmd: LC_SYMTAB
+ cmdsize: 24
+ symoff: 456
+ nsyms: 1
+ stroff: 472
+ strsize: 8
+ - cmd: LC_DYSYMTAB
+ cmdsize: 80
+ ilocalsym: 0
+ nlocalsym: 0
+ iextdefsym: 0
+ nextdefsym: 1
+ iundefsym: 1
+ nundefsym: 0
+ tocoff: 0
+ ntoc: 0
+ modtaboff: 0
+ nmodtab: 0
+ extrefsymoff: 0
+ nextrefsyms: 0
+ indirectsymoff: 0
+ nindirectsyms: 0
+ extreloff: 0
+ nextrel: 0
+ locreloff: 0
+ nlocrel: 0
+LinkEditData:
+ NameList:
+ - n_strx: 1
+ n_type: 0xF
+ n_sect: 1
+ n_desc: 0
+ n_value: 0
+ StringTable:
+ - ''
+ - _main
+ - ''
+...