From add00faa9681378cd9dbad22447c3b60116869f9 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Mon, 9 Sep 2013 20:03:11 +0000 Subject: [PATCH] Add constant defines for gnu pubnames and gnu pubtypes - they're used for the gdb index as the names convey. llvm-svn: 190343 --- llvm/include/llvm/Support/Dwarf.h | 17 +++++++++++++++++ llvm/lib/Support/Dwarf.cpp | 23 +++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/llvm/include/llvm/Support/Dwarf.h b/llvm/include/llvm/Support/Dwarf.h index 0e00761..a31c3f1 100644 --- a/llvm/include/llvm/Support/Dwarf.h +++ b/llvm/include/llvm/Support/Dwarf.h @@ -789,6 +789,23 @@ enum AcceleratorTable { /// AtomTypeString - Return the string for the specified Atom type. const char *AtomTypeString(unsigned Atom); +// Constants for the GNU pubnames/pubtypes extensions supporting gdb index. +enum GDBIndex { + // Special value to indicate no attributes are present. + GDB_INDEX_SYMBOL_KIND_NONE = 0, + GDB_INDEX_SYMBOL_KIND_TYPE = 1, + GDB_INDEX_SYMBOL_KIND_VARIABLE = 2, + GDB_INDEX_SYMBOL_KIND_FUNCTION = 3, + GDB_INDEX_SYMBOL_KIND_OTHER = 4, + // 3 unused bits. + GDB_INDEX_SYMBOL_KIND_UNUSED5 = 5, + GDB_INDEX_SYMBOL_KIND_UNUSED6 = 6, + GDB_INDEX_SYMBOL_KIND_UNUSED7 = 7 +}; + +/// GDBIndexTypeString - Return the string for the specified index type. +const char *GDBIndexTypeString(unsigned Kind); + } // End of namespace dwarf } // End of namespace llvm diff --git a/llvm/lib/Support/Dwarf.cpp b/llvm/lib/Support/Dwarf.cpp index 3bacdd3..5c780dd 100644 --- a/llvm/lib/Support/Dwarf.cpp +++ b/llvm/lib/Support/Dwarf.cpp @@ -739,3 +739,26 @@ const char *llvm::dwarf::AtomTypeString(unsigned AT) { } return 0; } + +const char *llvm::dwarf::GDBIndexTypeString(unsigned Kind) { + switch (Kind) { + case GDB_INDEX_SYMBOL_KIND_NONE: + return "case GDB_INDEX_SYMBOL_KIND_NONE"; + case GDB_INDEX_SYMBOL_KIND_TYPE: + return "case GDB_INDEX_SYMBOL_KIND_TYPE"; + case GDB_INDEX_SYMBOL_KIND_VARIABLE: + return "case GDB_INDEX_SYMBOL_KIND_VARIABLE"; + case GDB_INDEX_SYMBOL_KIND_FUNCTION: + return "case GDB_INDEX_SYMBOL_KIND_FUNCTION"; + case GDB_INDEX_SYMBOL_KIND_OTHER: + return "case GDB_INDEX_SYMBOL_KIND_OTHER"; + // 3 unused bits. + case GDB_INDEX_SYMBOL_KIND_UNUSED5: + return "case GDB_INDEX_SYMBOL_KIND_UNUSED5"; + case GDB_INDEX_SYMBOL_KIND_UNUSED6: + return "case GDB_INDEX_SYMBOL_KIND_UNUSED6"; + case GDB_INDEX_SYMBOL_KIND_UNUSED7: + return "case GDB_INDEX_SYMBOL_KIND_UNUSED7"; + } + return 0; +} -- 2.7.4