[Dwarf] Complete the list of type tags.
An incorrect verification error revealed that the list of type tags was
incomplete. This patch adds the missing types by adding a tag kind to
the Dwarf.def file, which is used by the `isType` function.
A test was added for the original verification error.
Differential revision: https://reviews.llvm.org/D65914
llvm-svn: 368718
diff --git a/llvm/lib/BinaryFormat/Dwarf.cpp b/llvm/lib/BinaryFormat/Dwarf.cpp
index eb6bd33..d096f73 100644
--- a/llvm/lib/BinaryFormat/Dwarf.cpp
+++ b/llvm/lib/BinaryFormat/Dwarf.cpp
@@ -22,7 +22,7 @@
switch (Tag) {
default:
return StringRef();
-#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
+#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
case DW_TAG_##NAME: \
return "DW_TAG_" #NAME;
#include "llvm/BinaryFormat/Dwarf.def"
@@ -31,7 +31,7 @@
unsigned llvm::dwarf::getTag(StringRef TagString) {
return StringSwitch<unsigned>(TagString)
-#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
+#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
.Case("DW_TAG_" #NAME, DW_TAG_##NAME)
#include "llvm/BinaryFormat/Dwarf.def"
.Default(DW_TAG_invalid);
@@ -41,7 +41,7 @@
switch (Tag) {
default:
return 0;
-#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
+#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
case DW_TAG_##NAME: \
return VERSION;
#include "llvm/BinaryFormat/Dwarf.def"
@@ -52,7 +52,7 @@
switch (Tag) {
default:
return 0;
-#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
+#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
case DW_TAG_##NAME: \
return DWARF_VENDOR_##VENDOR;
#include "llvm/BinaryFormat/Dwarf.def"