forked from OSchip/llvm-project
COFF: Implement SymbolBody::getDebugName() for DefinedBitcode symbols.
Differential Revision: http://reviews.llvm.org/D10827 llvm-svn: 241029
This commit is contained in:
parent
71784d611d
commit
f7b27d15f2
|
@ -291,7 +291,8 @@ std::error_code BitcodeFile::parse() {
|
|||
} else {
|
||||
bool Replaceable = (SymbolDef == LTO_SYMBOL_DEFINITION_TENTATIVE ||
|
||||
(Attrs & LTO_SYMBOL_COMDAT));
|
||||
SymbolBodies.push_back(new (Alloc) DefinedBitcode(SymName, Replaceable));
|
||||
SymbolBodies.push_back(new (Alloc) DefinedBitcode(this, SymName,
|
||||
Replaceable));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -138,6 +138,9 @@ std::string SymbolBody::getDebugName() {
|
|||
if (auto *D = dyn_cast<DefinedCOFF>(this)) {
|
||||
N += " ";
|
||||
N += D->File->getShortName();
|
||||
} else if (auto *D = dyn_cast<DefinedBitcode>(this)) {
|
||||
N += " ";
|
||||
N += D->File->getShortName();
|
||||
}
|
||||
return N;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ using llvm::object::coff_import_header;
|
|||
using llvm::object::coff_symbol_generic;
|
||||
|
||||
class ArchiveFile;
|
||||
class BitcodeFile;
|
||||
class InputFile;
|
||||
class ObjectFile;
|
||||
class SymbolBody;
|
||||
|
@ -334,15 +335,19 @@ private:
|
|||
};
|
||||
|
||||
class DefinedBitcode : public Defined {
|
||||
friend SymbolBody;
|
||||
public:
|
||||
DefinedBitcode(StringRef N, bool IsReplaceable)
|
||||
: Defined(DefinedBitcodeKind, N) {
|
||||
DefinedBitcode(BitcodeFile *F, StringRef N, bool IsReplaceable)
|
||||
: Defined(DefinedBitcodeKind, N), File(F) {
|
||||
this->IsReplaceable = IsReplaceable;
|
||||
}
|
||||
|
||||
static bool classof(const SymbolBody *S) {
|
||||
return S->kind() == DefinedBitcodeKind;
|
||||
}
|
||||
|
||||
private:
|
||||
BitcodeFile *File;
|
||||
};
|
||||
|
||||
} // namespace coff
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
define void @foo() {
|
||||
ret void
|
||||
}
|
|
@ -3,7 +3,12 @@
|
|||
# RUN: not lld -flavor link2 /out:%t.exe %t1.obj %t2.obj >& %t.log
|
||||
# RUN: FileCheck %s < %t.log
|
||||
|
||||
# CHECK: duplicate symbol: foo {{.+}} and foo {{.+}}
|
||||
# RUN: llvm-as -o %t.lto1.obj %S/Inputs/conflict.ll
|
||||
# RUN: llvm-as -o %t.lto2.obj %S/Inputs/conflict.ll
|
||||
# RUN: not lld -flavor link2 /out:%t.exe %t.lto1.obj %t.lto2.obj >& %t.log
|
||||
# RUN: FileCheck %s < %t.log
|
||||
|
||||
# CHECK: duplicate symbol: foo {{.+}}1.obj and foo {{.+}}2.obj
|
||||
|
||||
---
|
||||
header:
|
||||
|
|
Loading…
Reference in New Issue