diff --git a/lldb/include/lldb/Symbol/TypeSystem.h b/lldb/include/lldb/Symbol/TypeSystem.h --- a/lldb/include/lldb/Symbol/TypeSystem.h +++ b/lldb/include/lldb/Symbol/TypeSystem.h @@ -385,14 +385,14 @@ #endif virtual void DumpValue(lldb::opaque_compiler_type_t type, - ExecutionContext *exe_ctx, Stream *s, + ExecutionContext *exe_ctx, Stream &s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool show_types, bool show_summary, bool verbose, uint32_t depth) = 0; - virtual bool DumpTypeValue(lldb::opaque_compiler_type_t type, Stream *s, + virtual bool DumpTypeValue(lldb::opaque_compiler_type_t type, Stream &s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, @@ -409,7 +409,7 @@ /// source-like representation of the type, whereas eDescriptionLevelVerbose /// does a dump of the underlying AST if applicable. virtual void DumpTypeDescription( - lldb::opaque_compiler_type_t type, Stream *s, + lldb::opaque_compiler_type_t type, Stream &s, lldb::DescriptionLevel level = lldb::eDescriptionLevelFull) = 0; /// Dump a textual representation of the internal TypeSystem state to the @@ -423,7 +423,7 @@ virtual bool IsRuntimeGeneratedType(lldb::opaque_compiler_type_t type) = 0; virtual void DumpSummary(lldb::opaque_compiler_type_t type, - ExecutionContext *exe_ctx, Stream *s, + ExecutionContext *exe_ctx, Stream &s, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size) = 0; diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h @@ -1030,20 +1030,20 @@ void DumpFromSymbolFile(Stream &s, llvm::StringRef symbol_name); void DumpValue(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, - Stream *s, lldb::Format format, const DataExtractor &data, + Stream &s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool show_types, bool show_summary, bool verbose, uint32_t depth) override; - bool DumpTypeValue(lldb::opaque_compiler_type_t type, Stream *s, + bool DumpTypeValue(lldb::opaque_compiler_type_t type, Stream &s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope) override; void DumpSummary(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, - Stream *s, const DataExtractor &data, + Stream &s, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size) override; void DumpTypeDescription( @@ -1051,7 +1051,7 @@ lldb::DescriptionLevel level = lldb::eDescriptionLevelFull) override; void DumpTypeDescription( - lldb::opaque_compiler_type_t type, Stream *s, + lldb::opaque_compiler_type_t type, Stream &s, lldb::DescriptionLevel level = lldb::eDescriptionLevelFull) override; static void DumpTypeName(const CompilerType &type); diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -4750,7 +4750,7 @@ static bool g_printed = false; if (!g_printed) { StreamString s; - DumpTypeDescription(type, &s); + DumpTypeDescription(type, s); llvm::outs() << "warning: trying to determine the size of type "; llvm::outs() << s.GetString() << "\n"; @@ -8523,7 +8523,7 @@ } void TypeSystemClang::DumpValue( - lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, + lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream &s, lldb::Format format, const lldb_private::DataExtractor &data, lldb::offset_t data_byte_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool show_types, @@ -8574,15 +8574,15 @@ field_byte_offset = field_bit_offset / 8; assert(field_bit_offset % 8 == 0); if (child_idx == 0) - s->PutChar('{'); + s.PutChar('{'); else - s->PutChar(','); + s.PutChar(','); clang::QualType base_class_qual_type = base_class->getType(); std::string base_class_type_name(base_class_qual_type.getAsString()); // Indent and print the base class type name - s->Format("\n{0}{1}", llvm::fmt_repeat(" ", depth + DEPTH_INCREMENT), + s.Format("\n{0}{1}", llvm::fmt_repeat(" ", depth + DEPTH_INCREMENT), base_class_type_name); clang::TypeInfo base_class_type_info = @@ -8592,7 +8592,7 @@ CompilerType base_clang_type = GetType(base_class_qual_type); base_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to base_clang_type .GetFormat(), // The format with which to display the member data, // Data buffer containing all bytes for this type @@ -8620,12 +8620,12 @@ // Print the starting squiggly bracket (if this is the first member) or // comma (for member 2 and beyond) for the struct/union/class member. if (child_idx == 0) - s->PutChar('{'); + s.PutChar('{'); else - s->PutChar(','); + s.PutChar(','); // Indent - s->Printf("\n%*s", depth + DEPTH_INCREMENT, ""); + s.Printf("\n%*s", depth + DEPTH_INCREMENT, ""); clang::QualType field_type = field->getType(); // Print the member type if requested @@ -8646,19 +8646,19 @@ if (show_types) { std::string field_type_name(field_type.getAsString()); if (field_bitfield_bit_size > 0) - s->Printf("(%s:%u) ", field_type_name.c_str(), - field_bitfield_bit_size); + s.Printf("(%s:%u) ", field_type_name.c_str(), + field_bitfield_bit_size); else - s->Printf("(%s) ", field_type_name.c_str()); + s.Printf("(%s) ", field_type_name.c_str()); } // Print the member name and equal sign - s->Printf("%s = ", field->getNameAsString().c_str()); + s.Printf("%s = ", field->getNameAsString().c_str()); // Dump the value of the member CompilerType field_clang_type = GetType(field_type); field_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to field_clang_type .GetFormat(), // The format with which to display the member data, // Data buffer containing all bytes for this type @@ -8678,7 +8678,7 @@ // Indent the trailing squiggly bracket if (child_idx > 0) - s->Printf("\n%*s}", depth, ""); + s.Printf("\n%*s}", depth, ""); } return; @@ -8696,13 +8696,13 @@ enum_end_pos = enum_decl->enumerator_end(); enum_pos != enum_end_pos; ++enum_pos) { if (enum_pos->getInitVal() == enum_value) { - s->Printf("%s", enum_pos->getNameAsString().c_str()); + s.Printf("%s", enum_pos->getNameAsString().c_str()); return; } } // If we have gotten here we didn't get find the enumerator in the enum // decl, so just print the integer. - s->Printf("%" PRIi64, enum_value); + s.Printf("%" PRIi64, enum_value); } return; @@ -8728,11 +8728,11 @@ uint32_t element_stride = element_byte_size; if (is_array_of_characters) { - s->PutChar('"'); - DumpDataExtractor(data, s, data_byte_offset, lldb::eFormatChar, + s.PutChar('"'); + DumpDataExtractor(data, &s, data_byte_offset, lldb::eFormatChar, element_byte_size, element_count, UINT32_MAX, LLDB_INVALID_ADDRESS, 0, 0); - s->PutChar('"'); + s.PutChar('"'); return; } else { CompilerType element_clang_type = GetType(element_qual_type); @@ -8742,12 +8742,12 @@ // Print the starting squiggly bracket (if this is the first member) or // comman (for member 2 and beyong) for the struct/union/class member. if (element_idx == 0) - s->PutChar('{'); + s.PutChar('{'); else - s->PutChar(','); + s.PutChar(','); // Indent and print the index - s->Printf("\n%*s[%u] ", depth + DEPTH_INCREMENT, "", element_idx); + s.Printf("\n%*s[%u] ", depth + DEPTH_INCREMENT, "", element_idx); // Figure out the field offset within the current struct/union/class // type @@ -8756,7 +8756,7 @@ // Dump the value of the member element_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to element_format, // The format with which to display the element data, // Data buffer containing all bytes for this type data_byte_offset + @@ -8775,7 +8775,7 @@ // Indent the trailing squiggly bracket if (element_idx > 0) - s->Printf("\n%*s}", depth, ""); + s.Printf("\n%*s}", depth, ""); } } return; @@ -8794,7 +8794,7 @@ return typedef_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to typedef_format, // The format with which to display the element data, // Data buffer containing all bytes for this type data_byte_offset, // Offset into "data" where to grab value from @@ -8819,7 +8819,7 @@ return elaborated_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to elaborated_format, // The format with which to display the element data, // Data buffer containing all bytes for this type data_byte_offset, // Offset into "data" where to grab value from @@ -8844,7 +8844,7 @@ return elaborated_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to elaborated_format, // The format with which to display the element data, // Data buffer containing all bytes for this type data_byte_offset, // Offset into "data" where to grab value from @@ -8870,7 +8870,7 @@ return desugar_clang_type.DumpValue( exe_ctx, - s, // Stream to dump to + &s, // Stream to dump to desugar_format, // The format with which to display the element data, // Data buffer containing all bytes for this type data_byte_offset, // Offset into "data" where to grab value from @@ -8886,7 +8886,7 @@ default: // We are down to a scalar type that we just need to display. - DumpDataExtractor(data, s, data_byte_offset, format, data_byte_size, 1, + DumpDataExtractor(data, &s, data_byte_offset, format, data_byte_size, 1, UINT32_MAX, LLDB_INVALID_ADDRESS, bitfield_bit_size, bitfield_bit_offset); @@ -8896,7 +8896,7 @@ } } -static bool DumpEnumValue(const clang::QualType &qual_type, Stream *s, +static bool DumpEnumValue(const clang::QualType &qual_type, Stream &s, const DataExtractor &data, lldb::offset_t byte_offset, size_t byte_size, uint32_t bitfield_bit_offset, uint32_t bitfield_bit_size) { @@ -8926,7 +8926,7 @@ ++num_enumerators; if (val == enum_svalue) { // Found an exact match, that's all we need to do. - s->PutCString(enumerator->getNameAsString()); + s.PutCString(enumerator->getNameAsString()); return true; } } @@ -8940,9 +8940,9 @@ // decimal. if (!can_be_bitfield) { if (qual_type->isSignedIntegerOrEnumerationType()) - s->Printf("%" PRIi64, enum_svalue); + s.Printf("%" PRIi64, enum_svalue); else - s->Printf("%" PRIu64, enum_uvalue); + s.Printf("%" PRIu64, enum_uvalue); return true; } @@ -8965,20 +8965,20 @@ if ((remaining_value & val.first) != val.first) continue; remaining_value &= ~val.first; - s->PutCString(val.second); + s.PutCString(val.second); if (remaining_value) - s->PutCString(" | "); + s.PutCString(" | "); } // If there is a remainder that is not covered by the value, print it as hex. if (remaining_value) - s->Printf("0x%" PRIx64, remaining_value); + s.Printf("0x%" PRIx64, remaining_value); return true; } bool TypeSystemClang::DumpTypeValue( - lldb::opaque_compiler_type_t type, Stream *s, lldb::Format format, + lldb::opaque_compiler_type_t type, Stream &s, lldb::Format format, const lldb_private::DataExtractor &data, lldb::offset_t byte_offset, size_t byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope) { @@ -9011,7 +9011,7 @@ uint64_t typedef_byte_size = typedef_type_info.Width / 8; return typedef_clang_type.DumpTypeValue( - s, + &s, format, // The format with which to display the element data, // Data buffer containing all bytes for this type byte_offset, // Offset into "data" where to grab value from @@ -9090,7 +9090,7 @@ byte_size = 4; break; } - return DumpDataExtractor(data, s, byte_offset, format, byte_size, + return DumpDataExtractor(data, &s, byte_offset, format, byte_size, item_count, UINT32_MAX, LLDB_INVALID_ADDRESS, bitfield_bit_size, bitfield_bit_offset, exe_scope); @@ -9102,7 +9102,7 @@ } void TypeSystemClang::DumpSummary(lldb::opaque_compiler_type_t type, - ExecutionContext *exe_ctx, Stream *s, + ExecutionContext *exe_ctx, Stream &s, const lldb_private::DataExtractor &data, lldb::offset_t data_byte_offset, size_t data_byte_size) { @@ -9131,8 +9131,8 @@ if (len == 0) break; if (total_cstr_len == 0) - s->PutCString(" \""); - DumpDataExtractor(cstr_data, s, 0, lldb::eFormatChar, 1, len, + s.PutCString(" \""); + DumpDataExtractor(cstr_data, &s, 0, lldb::eFormatChar, 1, len, UINT32_MAX, LLDB_INVALID_ADDRESS, 0, 0); total_cstr_len += len; if (len < buf.size()) @@ -9140,7 +9140,7 @@ pointer_address += total_cstr_len; } if (total_cstr_len > 0) - s->PutChar('"'); + s.PutChar('"'); } } } @@ -9149,7 +9149,7 @@ void TypeSystemClang::DumpTypeDescription(lldb::opaque_compiler_type_t type, lldb::DescriptionLevel level) { StreamFile s(stdout, false); - DumpTypeDescription(type, &s, level); + DumpTypeDescription(type, s, level); CompilerType ct(weak_from_this(), type); const clang::Type *clang_type = ClangUtil::GetQualType(ct).getTypePtr(); @@ -9160,7 +9160,7 @@ } void TypeSystemClang::DumpTypeDescription(lldb::opaque_compiler_type_t type, - Stream *s, + Stream &s, lldb::DescriptionLevel level) { if (type) { clang::QualType qual_type = @@ -9189,7 +9189,7 @@ else class_interface_decl->print(llvm_ostrm, getASTContext().getPrintingPolicy(), - s->GetIndentLevel()); + s.GetIndentLevel()); } break; case clang::Type::Typedef: { @@ -9202,8 +9202,8 @@ else { std::string clang_typedef_name(GetTypeNameForDecl(typedef_decl)); if (!clang_typedef_name.empty()) { - s->PutCString("typedef "); - s->PutCString(clang_typedef_name); + s.PutCString("typedef "); + s.PutCString(clang_typedef_name); } } } break; @@ -9217,7 +9217,7 @@ record_decl->dump(llvm_ostrm); else { record_decl->print(llvm_ostrm, getASTContext().getPrintingPolicy(), - s->GetIndentLevel()); + s.GetIndentLevel()); } } break; @@ -9236,14 +9236,14 @@ else { std::string clang_type_name(qual_type.getAsString()); if (!clang_type_name.empty()) - s->PutCString(clang_type_name); + s.PutCString(clang_type_name); } } } } if (buf.size() > 0) { - s->Write(buf.data(), buf.size()); + s.Write(buf.data(), buf.size()); } } } diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp --- a/lldb/source/Symbol/CompilerType.cpp +++ b/lldb/source/Symbol/CompilerType.cpp @@ -830,7 +830,7 @@ bool show_summary, bool verbose, uint32_t depth) { if (!IsValid()) if (auto type_system_sp = GetTypeSystem()) - type_system_sp->DumpValue(m_type, exe_ctx, s, format, data, + type_system_sp->DumpValue(m_type, exe_ctx, *s, format, data, data_byte_offset, data_byte_size, bitfield_bit_size, bitfield_bit_offset, show_types, show_summary, verbose, depth); @@ -844,9 +844,9 @@ ExecutionContextScope *exe_scope) { if (IsValid()) if (auto type_system_sp = GetTypeSystem()) - return type_system_sp->DumpTypeValue(m_type, s, format, data, byte_offset, - byte_size, bitfield_bit_size, - bitfield_bit_offset, exe_scope); + return type_system_sp->DumpTypeValue( + m_type, *s, format, data, byte_offset, byte_size, bitfield_bit_size, + bitfield_bit_offset, exe_scope); return false; } @@ -856,7 +856,7 @@ size_t data_byte_size) { if (IsValid()) if (auto type_system_sp = GetTypeSystem()) - type_system_sp->DumpSummary(m_type, exe_ctx, s, data, data_byte_offset, + type_system_sp->DumpSummary(m_type, exe_ctx, *s, data, data_byte_offset, data_byte_size); } @@ -870,7 +870,7 @@ lldb::DescriptionLevel level) const { if (IsValid()) if (auto type_system_sp = GetTypeSystem()) - type_system_sp->DumpTypeDescription(m_type, s, level); + type_system_sp->DumpTypeDescription(m_type, *s, level); } #ifndef NDEBUG