diff options
author | Lang Hames <lhames@gmail.com> | 2014-09-04 04:53:03 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2014-09-04 04:53:03 +0000 |
commit | eb195f015199c6ed390ca8420ab8bcb45429d213 (patch) | |
tree | d506472f0c334068810b93db550d018c31bc846e /llvm/test/ExecutionEngine | |
parent | 1ddc288265d1b4c7116f19ef2b2046034f02070f (diff) | |
download | bcm5719-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.s | 30 |
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 |