From 6f5546cdeee7ee02edf2f7f9d26a0c6ada8895a3 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Tue, 3 Feb 2015 21:16:49 +0000 Subject: Support: Add string => unsigned mapping for DW_TAG Add `dwarf::getTag()` to translate from `StringRef` to `unsigned`. llvm-svn: 228031 --- llvm/lib/Support/Dwarf.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'llvm/lib/Support/Dwarf.cpp') diff --git a/llvm/lib/Support/Dwarf.cpp b/llvm/lib/Support/Dwarf.cpp index 255d357..80dfd10 100644 --- a/llvm/lib/Support/Dwarf.cpp +++ b/llvm/lib/Support/Dwarf.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/Dwarf.h" +#include "llvm/ADT/StringSwitch.h" #include "llvm/Support/ErrorHandling.h" using namespace llvm; @@ -27,6 +28,13 @@ const char *llvm::dwarf::TagString(unsigned Tag) { } } +unsigned llvm::dwarf::getTag(StringRef TagString) { + return StringSwitch(TagString) +#define HANDLE_DW_TAG(ID, NAME) .Case("DW_TAG_" #NAME, DW_TAG_##NAME) +#include "llvm/Support/Dwarf.def" + .Default(DW_TAG_invalid); +} + const char *llvm::dwarf::ChildrenString(unsigned Children) { switch (Children) { case DW_CHILDREN_no: return "DW_CHILDREN_no"; -- cgit v1.1