Revert "DebugInfo: use strongly typed enum for debug info flags"
This reverts commit r280686, bots are broken.
llvm-svn: 280688
diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp
index 1ed1b36..f467538 100644
--- a/llvm/lib/IR/DebugInfoMetadata.cpp
+++ b/llvm/lib/IR/DebugInfoMetadata.cpp
@@ -65,15 +65,17 @@
Storage, Context.pImpl->DILocations);
}
-DINode::DIFlags DINode::getFlag(StringRef Flag) {
- return StringSwitch<DIFlags>(Flag)
+unsigned DINode::getFlag(StringRef Flag) {
+ return StringSwitch<unsigned>(Flag)
#define HANDLE_DI_FLAG(ID, NAME) .Case("DIFlag" #NAME, Flag##NAME)
#include "llvm/IR/DebugInfoFlags.def"
- .Default(DINode::FlagZero);
+ .Default(0);
}
-const char *DINode::getFlagString(DIFlags Flag) {
+const char *DINode::getFlagString(unsigned Flag) {
switch (Flag) {
+ default:
+ return "";
#define HANDLE_DI_FLAG(ID, NAME) \
case Flag##NAME: \
return "DIFlag" #NAME;
@@ -81,11 +83,11 @@
}
}
-DINode::DIFlags DINode::splitFlags(DIFlags Flags,
- SmallVectorImpl<DIFlags> &SplitFlags) {
+unsigned DINode::splitFlags(unsigned Flags,
+ SmallVectorImpl<unsigned> &SplitFlags) {
// Accessibility and member pointer flags need to be specially handled, since
// they're packed together.
- if (DIFlags A = Flags & FlagAccessibility) {
+ if (unsigned A = Flags & FlagAccessibility) {
if (A == FlagPrivate)
SplitFlags.push_back(FlagPrivate);
else if (A == FlagProtected)
@@ -94,7 +96,7 @@
SplitFlags.push_back(FlagPublic);
Flags &= ~A;
}
- if (DIFlags R = Flags & FlagPtrToMemberRep) {
+ if (unsigned R = Flags & FlagPtrToMemberRep) {
if (R == FlagSingleInheritance)
SplitFlags.push_back(FlagSingleInheritance);
else if (R == FlagMultipleInheritance)
@@ -105,11 +107,12 @@
}
#define HANDLE_DI_FLAG(ID, NAME) \
- if (DIFlags Bit = Flags & Flag##NAME) { \
+ if (unsigned Bit = Flags & ID) { \
SplitFlags.push_back(Bit); \
Flags &= ~Bit; \
}
#include "llvm/IR/DebugInfoFlags.def"
+
return Flags;
}
@@ -239,7 +242,7 @@
DIDerivedType *DIDerivedType::getImpl(
LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *File,
unsigned Line, Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
- uint64_t AlignInBits, uint64_t OffsetInBits, DIFlags Flags,
+ uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags,
Metadata *ExtraData, StorageType Storage, bool ShouldCreate) {
assert(isCanonical(Name) && "Expected canonical MDString");
DEFINE_GETIMPL_LOOKUP(DIDerivedType,
@@ -254,7 +257,7 @@
DICompositeType *DICompositeType::getImpl(
LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *File,
unsigned Line, Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
- uint64_t AlignInBits, uint64_t OffsetInBits, DIFlags Flags,
+ uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags,
Metadata *Elements, unsigned RuntimeLang, Metadata *VTableHolder,
Metadata *TemplateParams, MDString *Identifier, StorageType Storage,
bool ShouldCreate) {
@@ -276,7 +279,7 @@
LLVMContext &Context, MDString &Identifier, unsigned Tag, MDString *Name,
Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits,
- DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
+ unsigned Flags, Metadata *Elements, unsigned RuntimeLang,
Metadata *VTableHolder, Metadata *TemplateParams) {
assert(!Identifier.getString().empty() && "Expected valid identifier");
if (!Context.isODRUniquingDebugTypes())
@@ -310,7 +313,7 @@
LLVMContext &Context, MDString &Identifier, unsigned Tag, MDString *Name,
Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits,
- DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
+ unsigned Flags, Metadata *Elements, unsigned RuntimeLang,
Metadata *VTableHolder, Metadata *TemplateParams) {
assert(!Identifier.getString().empty() && "Expected valid identifier");
if (!Context.isODRUniquingDebugTypes())
@@ -332,8 +335,9 @@
return Context.pImpl->DITypeMap->lookup(&Identifier);
}
-DISubroutineType *DISubroutineType::getImpl(LLVMContext &Context, DIFlags Flags,
- uint8_t CC, Metadata *TypeArray,
+DISubroutineType *DISubroutineType::getImpl(LLVMContext &Context,
+ unsigned Flags, uint8_t CC,
+ Metadata *TypeArray,
StorageType Storage,
bool ShouldCreate) {
DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray));
@@ -410,7 +414,7 @@
MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
Metadata *ContainingType, unsigned Virtuality, unsigned VirtualIndex,
- int ThisAdjustment, DIFlags Flags, bool IsOptimized, Metadata *Unit,
+ int ThisAdjustment, unsigned Flags, bool IsOptimized, Metadata *Unit,
Metadata *TemplateParams, Metadata *Declaration, Metadata *Variables,
StorageType Storage, bool ShouldCreate) {
assert(isCanonical(Name) && "Expected canonical MDString");
@@ -525,7 +529,7 @@
DILocalVariable *DILocalVariable::getImpl(LLVMContext &Context, Metadata *Scope,
MDString *Name, Metadata *File,
unsigned Line, Metadata *Type,
- unsigned Arg, DIFlags Flags,
+ unsigned Arg, unsigned Flags,
StorageType Storage,
bool ShouldCreate) {
// 64K ought to be enough for any frontend.