Add constant defines for gnu pubnames and gnu pubtypes - they're used
authorEric Christopher <echristo@gmail.com>
Mon, 9 Sep 2013 20:03:11 +0000 (20:03 +0000)
committerEric Christopher <echristo@gmail.com>
Mon, 9 Sep 2013 20:03:11 +0000 (20:03 +0000)
for the gdb index as the names convey.

llvm-svn: 190343

llvm/include/llvm/Support/Dwarf.h
llvm/lib/Support/Dwarf.cpp

index 0e00761..a31c3f1 100644 (file)
@@ -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
index 3bacdd3..5c780dd 100644 (file)
@@ -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;
+}