Index: source/Core/DumpDataExtractor.cpp =================================================================== --- source/Core/DumpDataExtractor.cpp +++ source/Core/DumpDataExtractor.cpp @@ -583,8 +583,15 @@ } else if (item_bit_size == ast->getTypeSize(ast->LongDoubleTy)) { const auto &semantics = ast->getFloatTypeSemantics(ast->LongDoubleTy); - const auto byte_size = - (llvm::APFloat::getSizeInBits(semantics) + 7) / 8; + + lldb::offset_t byte_size; + // PPCDoubleDouble needs to be handled separately, as + // llvm::APFloat::getSizeInBits() will not return a valid + // value for it. + if (&semantics == &llvm::APFloatBase::PPCDoubleDouble()) + byte_size = 16; + else + byte_size = (llvm::APFloat::getSizeInBits(semantics) + 7) / 8; llvm::APInt apint; if (GetAPInt(DE, &offset, byte_size, apint)) {