mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-04 03:06:28 +00:00
COFF: handle "undef - ." expressions.
This is another thing that the ELF implementation can do but is missing from COFF. llvm-svn: 306078
This commit is contained in:
parent
2b8b57e45d
commit
8e6dbe09ce
@ -746,17 +746,6 @@ void WinCOFFObjectWriter::recordRelocation(
|
||||
return;
|
||||
}
|
||||
|
||||
if (!A.getFragment()) {
|
||||
Asm.getContext().reportError(
|
||||
Fixup.getLoc(),
|
||||
Twine("symbol '") + A.getName() +
|
||||
"' can not be undefined in a subtraction expression");
|
||||
return;
|
||||
}
|
||||
|
||||
assert(&A.getSection() != &B->getSection() &&
|
||||
"This doesn't need a relocation");
|
||||
|
||||
// Offset of the symbol in the section
|
||||
int64_t OffsetOfB = Layout.getSymbolOffset(*B);
|
||||
|
||||
|
@ -1,9 +1,7 @@
|
||||
// RUN: not llvm-mc -filetype=obj -triple i386-pc-win32 %s 2>&1 | FileCheck %s
|
||||
|
||||
// CHECK: symbol '__ImageBase' can not be undefined in a subtraction expression
|
||||
// CHECK: symbol '__ImageBase' can not be undefined in a subtraction expression
|
||||
|
||||
.data
|
||||
_x:
|
||||
.long _x-__ImageBase
|
||||
.long __ImageBase-_x
|
||||
|
@ -58,17 +58,18 @@ t6:
|
||||
.long g3-(t6+16)
|
||||
.zero 4
|
||||
|
||||
.long foobar - .
|
||||
|
||||
// READOBJ: Section {
|
||||
// READOBJ: Number: 5
|
||||
// READOBJ: Name: .fix (2E 66 69 78 00 00 00 00)
|
||||
// READOBJ: VirtualSize: 0x0
|
||||
// READOBJ: VirtualAddress: 0x0
|
||||
// READOBJ: RawDataSize: 56
|
||||
// READOBJ: RawDataSize:
|
||||
// READOBJ: PointerToRawData: 0xEC
|
||||
// READOBJ: PointerToRelocations: 0x124
|
||||
// READOBJ: PointerToRelocations:
|
||||
// READOBJ: PointerToLineNumbers: 0x0
|
||||
// READOBJ: RelocationCount: 6
|
||||
// READOBJ: RelocationCount:
|
||||
// READOBJ: LineNumberCount: 0
|
||||
// READOBJ: Characteristics [ (0xC0500040)
|
||||
// READOBJ: IMAGE_SCN_ALIGN_16BYTES (0x500000)
|
||||
@ -80,7 +81,7 @@ t6:
|
||||
// READOBJ: 0000: 08000000 00000000 04000000 00000000 |................|
|
||||
// READOBJ: 0010: 00000000 00000000 04000000 00000000 |................|
|
||||
// READOBJ: 0020: 01020000 00000000 00010000 00000000 |................|
|
||||
// READOBJ: 0030: 04000000 00000000 |........|
|
||||
// READOBJ: 0030: 04000000 00000000 04000000 |............|
|
||||
// READOBJ: )
|
||||
// READOBJ: }
|
||||
// READOBJ: ]
|
||||
@ -116,3 +117,8 @@ t6:
|
||||
// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4)
|
||||
// READOBJ: Symbol: g3
|
||||
// READOBJ: }
|
||||
// READOBJ: Relocation {
|
||||
// READOBJ: Offset: 0x38
|
||||
// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4)
|
||||
// READOBJ: Symbol: foobar
|
||||
// READOBJ: }
|
||||
|
Loading…
x
Reference in New Issue
Block a user