forked from OSchip/llvm-project
[ELF] - Report valid binary filename when reporting error.
We did not report valid filename for duplicate symbol error when symbol came from binary input file. Patch fixes it. Differential revision: https://reviews.llvm.org/D42635 llvm-svn: 324217
This commit is contained in:
parent
276b32bb14
commit
f9dc10cd89
|
@ -1032,8 +1032,8 @@ static ELFKind getELFKind(MemoryBufferRef MB) {
|
|||
|
||||
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
|
||||
|
|
|
@ -90,8 +90,8 @@ public:
|
|||
// 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;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
// CHECK: duplicate symbol: _binary_file_bin_start
|
||||
// CHECK-NEXT: defined at {{.*}}.o:(.text+0x0)
|
||||
// CHECK-NEXT: defined at <internal>:(.data+0x0)
|
||||
// CHECK-NEXT: defined at file.bin:(.data+0x0)
|
||||
|
||||
.globl _binary_file_bin_start
|
||||
_binary_file_bin_start:
|
||||
|
|
Loading…
Reference in New Issue