[llvm-objcopy][NFC] Move ELF-specific logic into /ELF/ directory
llvm-svn: 357199
diff --git a/llvm/tools/llvm-objcopy/CopyConfig.cpp b/llvm/tools/llvm-objcopy/CopyConfig.cpp
index bc2b384..cf0ed2f 100644
--- a/llvm/tools/llvm-objcopy/CopyConfig.cpp
+++ b/llvm/tools/llvm-objcopy/CopyConfig.cpp
@@ -8,7 +8,6 @@
#include "CopyConfig.h"
-#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
@@ -91,23 +90,6 @@
StripOptTable() : OptTable(StripInfoTable) {}
};
-enum SectionFlag {
- SecNone = 0,
- SecAlloc = 1 << 0,
- SecLoad = 1 << 1,
- SecNoload = 1 << 2,
- SecReadonly = 1 << 3,
- SecDebug = 1 << 4,
- SecCode = 1 << 5,
- SecData = 1 << 6,
- SecRom = 1 << 7,
- SecMerge = 1 << 8,
- SecStrings = 1 << 9,
- SecContents = 1 << 10,
- SecShare = 1 << 11,
- LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ SecShare)
-};
-
} // namespace
static SectionFlag parseSectionRenameFlag(StringRef SectionName) {
@@ -127,7 +109,7 @@
.Default(SectionFlag::SecNone);
}
-static Expected<uint64_t>
+static Expected<SectionFlag>
parseSectionFlagSet(ArrayRef<StringRef> SectionFlags) {
SectionFlag ParsedFlags = SectionFlag::SecNone;
for (StringRef Flag : SectionFlags) {
@@ -142,18 +124,7 @@
ParsedFlags |= ParsedFlag;
}
- uint64_t NewFlags = 0;
- if (ParsedFlags & SectionFlag::SecAlloc)
- NewFlags |= ELF::SHF_ALLOC;
- if (!(ParsedFlags & SectionFlag::SecReadonly))
- NewFlags |= ELF::SHF_WRITE;
- if (ParsedFlags & SectionFlag::SecCode)
- NewFlags |= ELF::SHF_EXECINSTR;
- if (ParsedFlags & SectionFlag::SecMerge)
- NewFlags |= ELF::SHF_MERGE;
- if (ParsedFlags & SectionFlag::SecStrings)
- NewFlags |= ELF::SHF_STRINGS;
- return NewFlags;
+ return ParsedFlags;
}
static Expected<SectionRename> parseRenameSectionValue(StringRef FlagValue) {
@@ -172,7 +143,7 @@
SR.NewName = NameAndFlags[0];
if (NameAndFlags.size() > 1) {
- Expected<uint64_t> ParsedFlagSet =
+ Expected<SectionFlag> ParsedFlagSet =
parseSectionFlagSet(makeArrayRef(NameAndFlags).drop_front());
if (!ParsedFlagSet)
return ParsedFlagSet.takeError();
@@ -196,7 +167,7 @@
// Flags split: "f1" "f2" ...
SmallVector<StringRef, 6> SectionFlags;
Section2Flags.second.split(SectionFlags, ',');
- Expected<uint64_t> ParsedFlagSet = parseSectionFlagSet(SectionFlags);
+ Expected<SectionFlag> ParsedFlagSet = parseSectionFlagSet(SectionFlags);
if (!ParsedFlagSet)
return ParsedFlagSet.takeError();
SFU.NewFlags = *ParsedFlagSet;