diff --git a/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp b/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp --- a/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp +++ b/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp @@ -1301,7 +1301,10 @@ auto value = member->getValue(); clang::QualType qual_type = decl->getType(); unsigned type_width = m_ast.getASTContext().getIntWidth(qual_type); - unsigned constant_width = value.getBitWidth(); + // If we have an incomplete type, the value may be empty, which will + // trigger an assertion failure on `getBitWidth`. + unsigned constant_width = + value.Type == llvm::pdb::Empty ? - 1 : value.getBitWidth(); if (qual_type->isIntegralOrEnumerationType()) { if (type_width >= constant_width) {