llvm/test/MC/COFF
David Majnemer 16d8031f94 MC, COFF: Use relocations for function references inside the section
Referencing one symbol from another in the same section does not
generally require a relocation.  However, the MS linker has a feature
called /INCREMENTAL which enables incremental links.  It achieves this
by creating thunks to the actual function and redirecting all
relocations to point to the thunk.

This breaks down with the old scheme if you have a function which
references, say, itself.  On x86_64, we would use %rip relative
addressing to reference the start of the function from out current
position.  This would lead to miscompiles because other references might
reference the thunk instead, breaking function pointer equality.

This fixes PR21520.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221678 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-11 08:43:57 +00:00
..
alias.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
align-nops.s
bad-expr.s Forgot to add testcase for r198590 2014-01-21 20:39:11 +00:00
basic-coff-64.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
basic-coff.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
bigobj.py MC, COFF: Make bigobj test compatible with python3 2014-10-14 22:35:11 +00:00
bss_section.ll Update tests which broke from r218189 2014-09-20 21:18:43 +00:00
bss.s Fix known typos 2014-01-24 17:20:08 +00:00
comm-align.s COFF: Don't oversize COMMON symbols when targeting BFD ld 2014-10-08 06:38:53 +00:00
comm.ll MC: Support aligned COMMON symbols for COFF 2014-09-21 09:18:07 +00:00
comm.s MC: Support aligned COMMON symbols for COFF 2014-09-21 09:18:07 +00:00
const-gv-with-rel-init.ll MC: ReadOnlyWithRel section kinds should map to rdata in COFF 2014-09-22 20:39:23 +00:00
diff.s
directive-section-characteristics.ll MC: mark COFF .drectve section as REMOVE 2014-05-21 05:15:01 +00:00
early-dce.s MC: prevent early DCE of empty sections 2014-06-06 21:40:16 +00:00
eh-frame.s Output .eh_frames on COFF too now that the integrated as is used on mingw. 2013-12-02 14:59:34 +00:00
feat00.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
file.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
global_ctors_dtors.ll Fix a few issues with comdat handling on COFF. 2014-06-06 19:26:12 +00:00
initialised-data.ll MC: disable test on thumbv7-windows 2014-04-23 21:55:18 +00:00
invalid-def.s MC: remove unnecessary restriction on tests 2014-05-23 02:56:51 +00:00
invalid-endef.s MC: remove unnecessary restriction on tests 2014-05-23 02:56:51 +00:00
invalid-scl-range.s MC: remove unnecessary restriction on tests 2014-05-23 02:56:51 +00:00
invalid-scl.s MC: remove unnecessary restriction on tests 2014-05-23 02:56:51 +00:00
invalid-type-range.s MC: remove unnecessary restriction on tests 2014-05-23 02:56:51 +00:00
invalid-type.s MC: remove unnecessary restriction on tests 2014-05-23 02:56:51 +00:00
ir-to-imgrel.ll MC: Use @IMGREL instead of @IMGREL32, which we can't parse 2014-09-25 02:09:18 +00:00
linker-options.ll Update tests which broke from r218189 2014-09-20 21:18:43 +00:00
linkonce-invalid.s Fix a few issues with comdat handling on COFF. 2014-06-06 19:26:12 +00:00
linkonce.s MC: prevent early DCE of empty sections 2014-06-06 21:40:16 +00:00
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
lset0.s MC: Let non-temporary COFF aliases be in symtab 2014-07-13 04:31:19 +00:00
module-asm.ll
offset.s Compute the correct section for zed = foo + 1 in COFF. 2014-05-01 13:37:57 +00:00
rdata.ll
relocation-imgrel.s
secidx-diagnostic.s Fix PR18381 - print a minimal diagnostic rather than assert on unresolved .secidx target 2014-01-30 21:13:05 +00:00
secidx.s Fix COFF section index relocation should be 16 bits, not 32 2014-10-08 18:01:49 +00:00
secrel32.s
secrel-variant.s
section-comdat-conflict2.s Fix a few issues with comdat handling on COFF. 2014-06-06 19:26:12 +00:00
section-comdat-conflict.s Fix a few issues with comdat handling on COFF. 2014-06-06 19:26:12 +00:00
section-comdat.s MC: Fix associative sections on COFF 2014-06-27 17:19:44 +00:00
section-invalid-flags.s MC: Diagnose an unexpected token in COFF .section instead of asserting 2014-08-11 18:34:43 +00:00
section-name-encoding.s WinCOFFObjectWriter: optimize the string table for common suffices 2014-09-29 22:43:20 +00:00
section-passthru-flags.s MC: Fix MCSectionCOFF::PrintSwitchToSection 2014-09-20 20:40:50 +00:00
section.s
seh-align1.s
seh-align2.s
seh-align3.s
seh-linkonce.s MC Win64: Put unwind info for COMDAT code into the same COMDAT group 2014-09-04 17:42:03 +00:00
seh-section.s
seh-stackalloc-zero.s Fix .seh_stackalloc 0 2014-07-01 00:42:47 +00:00
seh.s MC: prevent early DCE of empty sections 2014-06-06 21:40:16 +00:00
simple-fixups.s MC, COFF: Use relocations for function references inside the section 2014-11-11 08:43:57 +00:00
switch-relocations.ll
symbol-alias.s Don't propagate StorageClass and ComplexType to aliases. 2014-05-01 19:02:03 +00:00
symbol-fragment-offset-64.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
symbol-fragment-offset.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
symbol-mangling.ll
timestamp.s Produce deterministic coff files. 2013-12-04 02:02:55 +00:00
tricky-names.ll Use simple section names for COMDAT sections on COFF. 2013-11-27 01:18:37 +00:00
weak-symbol.ll MC: honour IMAGE_SCN_CNT_INITIALIZED_DATA 2014-04-23 21:29:34 +00:00
weak.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00