llvm::sys::path::Style Style) {
llvm::StringRef directory = llvm::sys::path::parent_path(Path, Style);
llvm::StringRef filename = llvm::sys::path::filename(Path, Style);
- // We must insert the strings first, then call the FileEntry constructor.
- // If we inline the insertString() function call into the constructor, the
- // call order is undefined due to parameter lists not having any ordering
- // requirements.
- const uint32_t Dir = insertString(directory);
- const uint32_t Base = insertString(filename);
- FileEntry FE(Dir, Base);
+ FileEntry FE(insertString(directory), insertString(filename));
std::lock_guard<std::recursive_mutex> Guard(Mutex);
const auto NextIndex = Files.size();
if (ArchFilters.empty())
return true;
- Triple ObjTriple(Obj.getArchTriple());
- StringRef ObjArch = ObjTriple.getArchName();
+ StringRef ObjArch = Obj.getArchTriple().getArchName();
for (auto Arch : ArchFilters) {
// Match name.
error(Filename, errorToErrorCode(BinOrErr.takeError()));
if (auto *Obj = dyn_cast<ObjectFile>(BinOrErr->get())) {
- Triple ObjTriple(Obj->makeTriple());
- auto ArchName = ObjTriple.getArchName();
+ auto ArchName = Obj->makeTriple().getArchName();
outs() << "Output file (" << ArchName << "): " << OutFile << "\n";
if (auto Err = handleObjectFile(*Obj, OutFile.c_str()))
return Err;
// Now handle each architecture we need to convert.
for (auto &Obj: FilterObjs) {
- Triple ObjTriple(Obj->getArchTriple());
- auto ArchName = ObjTriple.getArchName();
+ auto ArchName = Obj->getArchTriple().getArchName();
std::string ArchOutFile(OutFile);
// If we are only handling a single architecture, then we will use the
// normal output file. If we are handling multiple architectures append