From d4ad5e32a61da5eb046cc109a2bb7c68cc06745f 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190343 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/Dwarf.h | 17 +++++++++++++++++ lib/Support/Dwarf.cpp | 23 +++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/include/llvm/Support/Dwarf.h b/include/llvm/Support/Dwarf.h index 0e00761bf3c..a31c3f131be 100644 --- a/include/llvm/Support/Dwarf.h +++ b/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/lib/Support/Dwarf.cpp b/lib/Support/Dwarf.cpp index 3bacdd35793..5c780ddc2b8 100644 --- a/lib/Support/Dwarf.cpp +++ b/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; +}