summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/DebugInfo.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-21 00:43:09 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-21 00:43:09 +0000
commitc22a5c2c6c519d9a5d25bc52b8b26ccebff62264 (patch)
tree5815fb10a35b7e2d5a4499c83d63b96390db8f6f /llvm/lib/IR/DebugInfo.cpp
parentee1b391275d13bc1cee933af634b9bae77f439e1 (diff)
downloadbcm5719-llvm-c22a5c2c6c519d9a5d25bc52b8b26ccebff62264.tar.gz
bcm5719-llvm-c22a5c2c6c519d9a5d25bc52b8b26ccebff62264.zip
IR: Add debug info flag string conversions
Add `DIDescriptor::getFlag(StringRef)` and `DIDescriptor::getFlagString(unsigned)`. The latter only converts exact matches; I'll add separate API for breaking the flags bitfield up into parts. llvm-svn: 230107
Diffstat (limited to 'llvm/lib/IR/DebugInfo.cpp')
-rw-r--r--llvm/lib/IR/DebugInfo.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp
index f682ad548f2..ad75fbae80d 100644
--- a/llvm/lib/IR/DebugInfo.cpp
+++ b/llvm/lib/IR/DebugInfo.cpp
@@ -17,6 +17,7 @@
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
+#include "llvm/ADT/StringSwitch.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DIBuilder.h"
@@ -36,6 +37,24 @@ using namespace llvm::dwarf;
// DIDescriptor
//===----------------------------------------------------------------------===//
+unsigned DIDescriptor::getFlag(StringRef Flag) {
+ return StringSwitch<unsigned>(Flag)
+#define HANDLE_DI_FLAG(ID, NAME) .Case("DIFlag" #NAME, Flag##NAME)
+#include "llvm/IR/DebugInfoFlags.def"
+ .Default(0);
+}
+
+const char *DIDescriptor::getFlagString(unsigned Flag) {
+ switch (Flag) {
+ default:
+ return "";
+#define HANDLE_DI_FLAG(ID, NAME) \
+ case Flag##NAME: \
+ return "DIFlag" #NAME;
+#include "llvm/IR/DebugInfoFlags.def"
+ }
+}
+
bool DIDescriptor::Verify() const {
return DbgNode &&
(DIDerivedType(DbgNode).Verify() ||
OpenPOWER on IntegriCloud