forked from OSchip/llvm-project
Revert "temporary commit."
This reverts commit r205635 that was submitted by mistake. llvm-svn: 205637
This commit is contained in:
parent
2e3881c0f5
commit
fbd6c44e6a
|
@ -262,37 +262,43 @@ void SymbolTable::addByName(const Atom &newAtom) {
|
|||
break;
|
||||
}
|
||||
case NCR_DupShLib: {
|
||||
const SharedLibraryAtom *curShLib = dyn_cast<SharedLibraryAtom>(existing);
|
||||
const SharedLibraryAtom *newShLib = dyn_cast<SharedLibraryAtom>(&newAtom);
|
||||
assert(curShLib != nullptr);
|
||||
assert(newShLib != nullptr);
|
||||
bool sameNullness =
|
||||
(curShLib->canBeNullAtRuntime() == newShLib->canBeNullAtRuntime());
|
||||
bool sameName = curShLib->loadName().equals(newShLib->loadName());
|
||||
if (!sameName) {
|
||||
useNew = false;
|
||||
if (_context.warnIfCoalesableAtomsHaveDifferentLoadName()) {
|
||||
// FIXME: need diagonstics interface for writing warning messages
|
||||
llvm::errs() << "lld warning: shared library symbol "
|
||||
<< curShLib->name() << " has different load path in "
|
||||
<< curShLib->file().path() << " and in "
|
||||
<< newShLib->file().path();
|
||||
const SharedLibraryAtom* curShLib =
|
||||
dyn_cast<SharedLibraryAtom>(existing);
|
||||
const SharedLibraryAtom* newShLib =
|
||||
dyn_cast<SharedLibraryAtom>(&newAtom);
|
||||
assert(curShLib != nullptr);
|
||||
assert(newShLib != nullptr);
|
||||
bool sameNullness = (curShLib->canBeNullAtRuntime()
|
||||
== newShLib->canBeNullAtRuntime());
|
||||
bool sameName = curShLib->loadName().equals(newShLib->loadName());
|
||||
if (!sameName) {
|
||||
useNew = false;
|
||||
if (_context.warnIfCoalesableAtomsHaveDifferentLoadName()) {
|
||||
// FIXME: need diagonstics interface for writing warning messages
|
||||
llvm::errs() << "lld warning: shared library symbol "
|
||||
<< curShLib->name()
|
||||
<< " has different load path in "
|
||||
<< curShLib->file().path()
|
||||
<< " and in "
|
||||
<< newShLib->file().path();
|
||||
}
|
||||
} else if (!sameNullness) {
|
||||
useNew = false;
|
||||
if (_context.warnIfCoalesableAtomsHaveDifferentCanBeNull()) {
|
||||
// FIXME: need diagonstics interface for writing warning messages
|
||||
llvm::errs() << "lld warning: shared library symbol "
|
||||
<< curShLib->name()
|
||||
<< " has different weakness in "
|
||||
<< curShLib->file().path()
|
||||
<< " and in "
|
||||
<< newShLib->file().path();
|
||||
}
|
||||
} else {
|
||||
// Both shlib atoms are identical and can be coalesced.
|
||||
useNew = false;
|
||||
}
|
||||
} else if (!sameNullness) {
|
||||
useNew = false;
|
||||
if (_context.warnIfCoalesableAtomsHaveDifferentCanBeNull()) {
|
||||
// FIXME: need diagonstics interface for writing warning messages
|
||||
llvm::errs() << "lld warning: shared library symbol "
|
||||
<< curShLib->name() << " has different weakness in "
|
||||
<< curShLib->file().path() << " and in "
|
||||
<< newShLib->file().path();
|
||||
}
|
||||
} else {
|
||||
// Both shlib atoms are identical and can be coalesced.
|
||||
useNew = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NCR_Error:
|
||||
llvm::errs() << "SymbolTable: error while merging " << name << "\n";
|
||||
llvm::report_fatal_error("duplicate symbol error");
|
||||
|
|
Loading…
Reference in New Issue