[PATCH] D42635: [ELF] - Report valid binary filename when reporting error.
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 29 03:51:24 PST 2018
grimar created this revision.
grimar added reviewers: ruiu, espindola.
Herald added a subscriber: emaste.
We did not report valid filename for duplicate symbol error when
symbol came from binary input file.
Patch fixes it.
https://reviews.llvm.org/D42635
Files:
ELF/InputFiles.cpp
ELF/InputFiles.h
test/ELF/duplicated-synthetic-sym.s
Index: test/ELF/duplicated-synthetic-sym.s
===================================================================
--- test/ELF/duplicated-synthetic-sym.s
+++ test/ELF/duplicated-synthetic-sym.s
@@ -4,7 +4,7 @@
// RUN: not ld.lld %t.o --format binary duplicated-synthetic-sym.s -o %t.elf 2>&1 | FileCheck %s
// CHECK: duplicate symbol: _binary_duplicated_synthetic_sym_s_start
-// CHECK: defined at <internal>:(.data+0x0)
+// CHECK: defined at duplicated-synthetic-sym.s:(.data+0x0)
.globl _binary_duplicated_synthetic_sym_s_start
_binary_duplicated_synthetic_sym_s_start:
Index: ELF/InputFiles.h
===================================================================
--- ELF/InputFiles.h
+++ ELF/InputFiles.h
@@ -90,8 +90,8 @@
// Returns object file symbols. It is a runtime error to call this
// function on files of other types.
ArrayRef<Symbol *> getSymbols() {
- assert(FileKind == ObjKind || FileKind == BitcodeKind ||
- FileKind == ArchiveKind);
+ assert(FileKind == BinaryKind || FileKind == ObjKind ||
+ FileKind == BitcodeKind || FileKind == ArchiveKind);
return Symbols;
}
Index: ELF/InputFiles.cpp
===================================================================
--- ELF/InputFiles.cpp
+++ ELF/InputFiles.cpp
@@ -1026,8 +1026,8 @@
void BinaryFile::parse() {
ArrayRef<uint8_t> Data = toArrayRef(MB.getBuffer());
- auto *Section = make<InputSection>(nullptr, SHF_ALLOC | SHF_WRITE,
- SHT_PROGBITS, 8, Data, ".data");
+ auto *Section = make<InputSection>(this, SHF_ALLOC | SHF_WRITE, SHT_PROGBITS,
+ 8, Data, ".data");
Sections.push_back(Section);
// For each input file foo that is embedded to a result as a binary
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42635.131761.patch
Type: text/x-patch
Size: 1767 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180129/fbe548da/attachment.bin>
More information about the llvm-commits
mailing list