summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-06-12 20:46:35 +0000
committerZachary Turner <zturner@google.com>2017-06-12 20:46:35 +0000
commitd334cebac4ca2c51677b415526d1e23476298710 (patch)
tree708ad1f8249248adfbcc8bcf1e5af4885ab954c7 /llvm/lib/DebugInfo
parent76f063090b2822106f0ff1fc951cae8e8821614f (diff)
downloadbcm5719-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.cpp5
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
OpenPOWER on IntegriCloud