Return a StringRef instead of a Comdat*.

This is a small step in making this interface compatible with an
bitcode symbol table.

llvm-svn: 284408
This commit is contained in:
Rafael Espindola 2016-10-17 18:51:02 +00:00
parent c197ae0d74
commit 62382c930d
2 changed files with 8 additions and 9 deletions

View File

@ -176,10 +176,9 @@ public:
return GV && GV->isThreadLocal();
}
//FIXME: We shouldn't expose this information.
Expected<const Comdat *> getComdat() const {
Expected<StringRef> getComdat() const {
if (!GV)
return nullptr;
return "";
const GlobalObject *GO;
if (auto *GA = dyn_cast<GlobalAlias>(GV)) {
GO = GA->getBaseObject();
@ -189,9 +188,9 @@ public:
} else {
GO = cast<GlobalObject>(GV);
}
if (GO)
return GO->getComdat();
return nullptr;
if (const Comdat *C = GO->getComdat())
return C->getName();
return "";
}
uint64_t getCommonSize() const {

View File

@ -526,9 +526,9 @@ static ld_plugin_status claim_file_hook(const ld_plugin_input_file *file,
sym.size = 0;
sym.comdat_key = nullptr;
const Comdat *C = check(Sym.getComdat());
if (C)
sym.comdat_key = strdup(C->getName().str().c_str());
StringRef C = check(Sym.getComdat());
if (!C.empty())
sym.comdat_key = strdup(C.str().c_str());
sym.resolution = LDPR_UNKNOWN;
}