diff options
author | Reid Kleckner <rnk@google.com> | 2017-06-19 16:54:51 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2017-06-19 16:54:51 +0000 |
commit | 18d90e17ad8ac9d570e3d93df0a38a1e2dd1c08a (patch) | |
tree | bf4f2cee827c30212b07e2aec43fdf323ff6325c /llvm/include | |
parent | daa9c0e403d5e5e64a1a7d062bab8d3e0ee7edbd (diff) | |
download | bcm5719-llvm-18d90e17ad8ac9d570e3d93df0a38a1e2dd1c08a.tar.gz bcm5719-llvm-18d90e17ad8ac9d570e3d93df0a38a1e2dd1c08a.zip |
[CodeView] Fix dumping of public symbol record flags
I noticed nonsensical type information while dumping PDBs produced by
MSVC.
llvm-svn: 305708
Diffstat (limited to 'llvm/include')
-rw-r--r-- | llvm/include/llvm/DebugInfo/CodeView/CodeView.h | 10 | ||||
-rw-r--r-- | llvm/include/llvm/DebugInfo/CodeView/EnumTables.h | 1 | ||||
-rw-r--r-- | llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CodeView.h b/llvm/include/llvm/DebugInfo/CodeView/CodeView.h index 6820e26b754..b7a7e33abad 100644 --- a/llvm/include/llvm/DebugInfo/CodeView/CodeView.h +++ b/llvm/include/llvm/DebugInfo/CodeView/CodeView.h @@ -402,6 +402,16 @@ enum class LocalSymFlags : uint16_t { }; CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(LocalSymFlags) +/// Corresponds to the CV_PUBSYMFLAGS bitfield. +enum class PublicSymFlags : uint32_t { + None = 0, + Code = 1 << 0, + Function = 1 << 1, + Managed = 1 << 2, + MSIL = 1 << 3, +}; +CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(PublicSymFlags) + /// Corresponds to the CV_PROCFLAGS bitfield. enum class ProcSymFlags : uint8_t { None = 0, diff --git a/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h b/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h index 013e440613f..5d54bb4cca8 100644 --- a/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h +++ b/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h @@ -22,6 +22,7 @@ namespace codeview { ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames(); ArrayRef<EnumEntry<TypeLeafKind>> getTypeLeafNames(); ArrayRef<EnumEntry<uint16_t>> getRegisterNames(); +ArrayRef<EnumEntry<uint32_t>> getPublicSymFlagNames(); ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames(); ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames(); ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames(); diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h index 5f85ed28cb3..1cf77fcdecb 100644 --- a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h +++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h @@ -363,7 +363,7 @@ public: : SymbolRecord(SymbolRecordKind::PublicSym32), RecordOffset(RecordOffset) {} - TypeIndex Index; + PublicSymFlags Flags; uint32_t Offset; uint16_t Segment; StringRef Name; |