summaryrefslogtreecommitdiffstats
path: root/llvm/test/ExecutionEngine
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2014-09-04 04:53:03 +0000
committerLang Hames <lhames@gmail.com>2014-09-04 04:53:03 +0000
commiteb195f015199c6ed390ca8420ab8bcb45429d213 (patch)
treed506472f0c334068810b93db550d018c31bc846e /llvm/test/ExecutionEngine
parent1ddc288265d1b4c7116f19ef2b2046034f02070f (diff)
downloadbcm5719-llvm-eb195f015199c6ed390ca8420ab8bcb45429d213.tar.gz
bcm5719-llvm-eb195f015199c6ed390ca8420ab8bcb45429d213.zip
[MCJIT] Make sure eh-frame fixups use the target's pointer type, not the host's.
If the wrong pointer type is used it can cause corruption of the frame description entries. llvm-svn: 217124
Diffstat (limited to 'llvm/test/ExecutionEngine')
-rw-r--r--llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s30
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s b/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s
new file mode 100644
index 00000000000..8814ec3c613
--- /dev/null
+++ b/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s
@@ -0,0 +1,30 @@
+# RUN: llvm-mc -triple=i386-apple-macosx10.4 -relocation-model=dynamic-no-pic -filetype=obj -o %T/MachO_i386_eh_frame.o %s
+# RUN: llvm-rtdyld -triple=i386-apple-macosx10.4 -verify -map-section MachO_i386_eh_frame.o,__text=0x2000 -check=%s %/T/MachO_i386_eh_frame.o
+
+# rtdyld-check: *{4}(section_addr(MachO_i386_eh_frame.o, __eh_frame) + 0x20) = (main - (section_addr(MachO_i386_eh_frame.o, __eh_frame) + 0x20))[31:0]
+# rtdyld-check: *{4}(section_addr(MachO_i386_eh_frame.o, __eh_frame) + 0x24) = 0x9
+
+ .section __TEXT,__text,regular,pure_instructions
+
+ .globl bar
+ .align 4, 0x90
+bar:
+ retl
+
+ .globl main
+ .align 4, 0x90
+main:
+ .cfi_startproc
+ pushl %ebp
+Ltmp0:
+ .cfi_def_cfa_offset 8
+Ltmp1:
+ .cfi_offset %ebp, -8
+ movl %esp, %ebp
+Ltmp2:
+ .cfi_def_cfa_register %ebp
+ popl %ebp
+ jmp bar
+ .cfi_endproc
+
+.subsections_via_symbols
OpenPOWER on IntegriCloud