[PATCH] D72252: [LLD] [COFF] Fix post-commit suggestions for absolute symbol equality
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 8 12:41:57 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG78ce19b7e1dc: [LLD] [COFF] Fix post-commit suggestions for absolute symbol equality (authored by mstorsjo).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72252/new/
https://reviews.llvm.org/D72252
Files:
lld/COFF/SymbolTable.cpp
lld/COFF/Symbols.h
lld/test/COFF/duplicate-absolute-same.s
Index: lld/test/COFF/duplicate-absolute-same.s
===================================================================
--- lld/test/COFF/duplicate-absolute-same.s
+++ lld/test/COFF/duplicate-absolute-same.s
@@ -2,9 +2,9 @@
// RUN: llvm-mc -triple x86_64-windows-msvc -filetype obj -o %t.obj %s
// RUN: echo -e ".globl myabsolute\nmyabsolute = 0" > %t.dupl.s
// RUN: llvm-mc -triple x86_64-windows-msvc -filetype obj -o %t.dupl.obj %t.dupl.s
-// RUN: lld-link /out:%t.exe %t.obj %t.dupl.obj -subsystem:console -entry:entry 2>&1 | FileCheck --allow-empty %s
+// RUN: lld-link /out:%t.exe %t.obj %t.dupl.obj -subsystem:console -entry:entry 2>&1 | count 0
-// CHECK-NOT: error: duplicate symbol: myabsolute
+// This shouldn't produce any duplicate symbol error.
.globl myabsolute
myabsolute = 0
Index: lld/COFF/Symbols.h
===================================================================
--- lld/COFF/Symbols.h
+++ lld/COFF/Symbols.h
@@ -228,14 +228,7 @@
uint64_t getRVA() { return va - config->imageBase; }
void setVA(uint64_t v) { va = v; }
-
- bool isEqual(COFFSymbolRef s) const {
- return va == s.getValue();
- }
-
- bool isEqual(uint64_t otherVa) const {
- return va == otherVa;
- }
+ uint64_t getVA() const { return va; }
// Section index relocations against absolute symbols resolve to
// this 16 bit number, and it is the largest valid section index
Index: lld/COFF/SymbolTable.cpp
===================================================================
--- lld/COFF/SymbolTable.cpp
+++ lld/COFF/SymbolTable.cpp
@@ -592,7 +592,7 @@
if (wasInserted || isa<Undefined>(s) || s->isLazy())
replaceSymbol<DefinedAbsolute>(s, n, sym);
else if (auto *da = dyn_cast<DefinedAbsolute>(s)) {
- if (!da->isEqual(sym))
+ if (da->getVA() != sym.getValue())
reportDuplicate(s, nullptr);
} else if (!isa<DefinedCOFF>(s))
reportDuplicate(s, nullptr);
@@ -607,7 +607,7 @@
if (wasInserted || isa<Undefined>(s) || s->isLazy())
replaceSymbol<DefinedAbsolute>(s, n, va);
else if (auto *da = dyn_cast<DefinedAbsolute>(s)) {
- if (!da->isEqual(va))
+ if (da->getVA() != va)
reportDuplicate(s, nullptr);
} else if (!isa<DefinedCOFF>(s))
reportDuplicate(s, nullptr);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72252.236890.patch
Type: text/x-patch
Size: 2238 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200108/9d03ef9a/attachment.bin>
More information about the llvm-commits
mailing list