https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D104693
#include "llvm/Support/StringSaver.h"
#include <memory>
-namespace llvm {
-namespace objcopy {
+using namespace llvm;
+using namespace llvm::objcopy;
namespace {
enum ObjcopyID {
return SFU;
}
+namespace {
struct TargetInfo {
FileFormat Format;
MachineInfo Machine;
};
+} // namespace
// FIXME: consolidate with the bfd parsing used by lld.
static const StringMap<MachineInfo> TargetMap{
return {TargetInfo{Format, MI}};
}
-static Error
-addSymbolsFromFile(NameMatcher &Symbols, BumpPtrAllocator &Alloc,
- StringRef Filename, MatchStyle MS,
- llvm::function_ref<Error(Error)> ErrorCallback) {
+static Error addSymbolsFromFile(NameMatcher &Symbols, BumpPtrAllocator &Alloc,
+ StringRef Filename, MatchStyle MS,
+ function_ref<Error(Error)> ErrorCallback) {
StringSaver Saver(Alloc);
SmallVector<StringRef, 16> Lines;
auto BufOrErr = MemoryBuffer::getFile(Filename);
Expected<NameOrPattern>
NameOrPattern::create(StringRef Pattern, MatchStyle MS,
- llvm::function_ref<Error(Error)> ErrorCallback) {
+ function_ref<Error(Error)> ErrorCallback) {
switch (MS) {
case MatchStyle::Literal:
return NameOrPattern(Pattern);
// help flag is set then ParseObjcopyOptions will print the help messege and
// exit.
Expected<DriverConfig>
-parseObjcopyOptions(ArrayRef<const char *> RawArgsArr,
- llvm::function_ref<Error(Error)> ErrorCallback) {
+objcopy::parseObjcopyOptions(ArrayRef<const char *> RawArgsArr,
+ function_ref<Error(Error)> ErrorCallback) {
DriverConfig DC;
ObjcopyOptTable T;
// If a help flag is set then ParseInstallNameToolOptions will print the help
// messege and exit.
Expected<DriverConfig>
-parseInstallNameToolOptions(ArrayRef<const char *> ArgsArr) {
+objcopy::parseInstallNameToolOptions(ArrayRef<const char *> ArgsArr) {
DriverConfig DC;
ConfigManager ConfigMgr;
CommonConfig &Config = ConfigMgr.Common;
}
Expected<DriverConfig>
-parseBitcodeStripOptions(ArrayRef<const char *> ArgsArr) {
+objcopy::parseBitcodeStripOptions(ArrayRef<const char *> ArgsArr) {
DriverConfig DC;
ConfigManager ConfigMgr;
CommonConfig &Config = ConfigMgr.Common;
// help flag is set then ParseStripOptions will print the help messege and
// exit.
Expected<DriverConfig>
-parseStripOptions(ArrayRef<const char *> RawArgsArr,
- llvm::function_ref<Error(Error)> ErrorCallback) {
+objcopy::parseStripOptions(ArrayRef<const char *> RawArgsArr,
+ function_ref<Error(Error)> ErrorCallback) {
const char *const *DashDash =
std::find_if(RawArgsArr.begin(), RawArgsArr.end(),
[](StringRef Str) { return Str == "--"; });
return std::move(DC);
}
-
-} // namespace objcopy
-} // namespace llvm
#include <system_error>
#include <utility>
-namespace llvm {
-namespace objcopy {
-namespace elf {
+using namespace llvm;
+using namespace llvm::ELF;
+using namespace llvm::objcopy;
+using namespace llvm::objcopy::elf;
+using namespace llvm::object;
-using namespace object;
-using namespace ELF;
using SectionPred = std::function<bool(const SectionBase &Sec)>;
static bool isDebugSection(const SectionBase &Sec) {
return !isDWOSection(Sec);
}
-uint64_t getNewShfFlags(SectionFlag AllFlags) {
+static uint64_t getNewShfFlags(SectionFlag AllFlags) {
uint64_t NewFlags = 0;
if (AllFlags & SectionFlag::SecAlloc)
NewFlags |= ELF::SHF_ALLOC;
return Writer->write();
}
-Error executeObjcopyOnIHex(const CommonConfig &Config,
- const ELFConfig &ELFConfig, MemoryBuffer &In,
- raw_ostream &Out) {
+Error objcopy::elf::executeObjcopyOnIHex(const CommonConfig &Config,
+ const ELFConfig &ELFConfig,
+ MemoryBuffer &In, raw_ostream &Out) {
IHexReader Reader(&In);
Expected<std::unique_ptr<Object>> Obj = Reader.create(true);
if (!Obj)
return writeOutput(Config, **Obj, Out, OutputElfType);
}
-Error executeObjcopyOnRawBinary(const CommonConfig &Config,
- const ELFConfig &ELFConfig, MemoryBuffer &In,
- raw_ostream &Out) {
+Error objcopy::elf::executeObjcopyOnRawBinary(const CommonConfig &Config,
+ const ELFConfig &ELFConfig,
+ MemoryBuffer &In,
+ raw_ostream &Out) {
BinaryReader Reader(&In, ELFConfig.NewSymbolVisibility);
Expected<std::unique_ptr<Object>> Obj = Reader.create(true);
if (!Obj)
return writeOutput(Config, **Obj, Out, OutputElfType);
}
-Error executeObjcopyOnBinary(const CommonConfig &Config,
- const ELFConfig &ELFConfig,
- object::ELFObjectFileBase &In, raw_ostream &Out) {
+Error objcopy::elf::executeObjcopyOnBinary(const CommonConfig &Config,
+ const ELFConfig &ELFConfig,
+ object::ELFObjectFileBase &In,
+ raw_ostream &Out) {
ELFReader Reader(&In, Config.ExtractPartition);
Expected<std::unique_ptr<Object>> Obj =
Reader.create(!Config.SymbolsToAdd.empty());
return Error::success();
}
-
-} // end namespace elf
-} // end namespace objcopy
-} // end namespace llvm
#include <utility>
#include <vector>
-namespace llvm {
-namespace objcopy {
-namespace elf {
-
-using namespace object;
-using namespace ELF;
+using namespace llvm;
+using namespace llvm::ELF;
+using namespace llvm::objcopy::elf;
+using namespace llvm::object;
template <class ELFT> void ELFWriter<ELFT>::writePhdr(const Segment &Seg) {
uint8_t *B = reinterpret_cast<uint8_t *>(Buf->getBufferStart()) +
// Fills exactly Len bytes of buffer with hexadecimal characters
// representing value 'X'
template <class T, class Iterator>
-static Iterator utohexstr(T X, Iterator It, size_t Len) {
+static Iterator toHexStr(T X, Iterator It, size_t Len) {
// Fill range with '0'
std::fill(It, It + Len, '0');
assert(Line.size());
auto Iter = Line.begin();
*Iter++ = ':';
- Iter = utohexstr(Data.size(), Iter, 2);
- Iter = utohexstr(Addr, Iter, 4);
- Iter = utohexstr(Type, Iter, 2);
+ Iter = toHexStr(Data.size(), Iter, 2);
+ Iter = toHexStr(Addr, Iter, 4);
+ Iter = toHexStr(Type, Iter, 2);
for (uint8_t X : Data)
- Iter = utohexstr(X, Iter, 2);
+ Iter = toHexStr(X, Iter, 2);
StringRef S(Line.data() + 1, std::distance(Line.begin() + 1, Iter));
- Iter = utohexstr(getChecksum(S), Iter, 2);
+ Iter = toHexStr(getChecksum(S), Iter, 2);
*Iter++ = '\r';
*Iter++ = '\n';
assert(Iter == Line.end());
return Error::success();
}
+namespace llvm {
+namespace objcopy {
+namespace elf {
+
template class ELFBuilder<ELF64LE>;
template class ELFBuilder<ELF64BE>;
template class ELFBuilder<ELF32LE>;