diff options
| author | Zachary Turner <zturner@google.com> | 2017-06-12 20:46:35 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2017-06-12 20:46:35 +0000 |
| commit | d334cebac4ca2c51677b415526d1e23476298710 (patch) | |
| tree | 708ad1f8249248adfbcc8bcf1e5af4885ab954c7 /llvm/lib/DebugInfo | |
| parent | 76f063090b2822106f0ff1fc951cae8e8821614f (diff) | |
| download | bcm5719-llvm-d334cebac4ca2c51677b415526d1e23476298710.tar.gz bcm5719-llvm-d334cebac4ca2c51677b415526d1e23476298710.zip | |
Fix a null pointer dereference in llvm-pdbutil pretty.
Static data members were causing a problem because I mistakenly
assumed all members would affect a class's layout and so the
Layout member would be non-null.
llvm-svn: 305229
Diffstat (limited to 'llvm/lib/DebugInfo')
| -rw-r--r-- | llvm/lib/DebugInfo/PDB/UDTLayout.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/DebugInfo/PDB/UDTLayout.cpp b/llvm/lib/DebugInfo/PDB/UDTLayout.cpp index aacefae80c3..da353cb6977 100644 --- a/llvm/lib/DebugInfo/PDB/UDTLayout.cpp +++ b/llvm/lib/DebugInfo/PDB/UDTLayout.cpp @@ -181,13 +181,14 @@ void UDTLayoutBase::initializeChildren(const PDBSymbol &Sym) { if (Data->getDataKind() == PDB_DataKind::Member) Members.push_back(std::move(Data)); else - Other.push_back(std::move(Child)); + Other.push_back(std::move(Data)); } else if (auto VT = unique_dyn_cast<PDBSymbolTypeVTable>(Child)) VTables.push_back(std::move(VT)); else if (auto Func = unique_dyn_cast<PDBSymbolFunc>(Child)) Funcs.push_back(std::move(Func)); - else + else { Other.push_back(std::move(Child)); + } } // We don't want to have any re-allocations in the list of bases, so make |

