browneee updated this revision to Diff 255891.
browneee added a comment.
Fix formatting.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77621/new/
https://reviews.llvm.org/D77621
Files:
clang-tools-extra/clang-doc/Serialize.cpp
clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
clang/include/clang/Serialization/ASTWriter.h
clang/include/clang/Serialization/PCHContainerOperations.h
clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
clang/lib/Frontend/ASTUnit.cpp
clang/lib/Frontend/PrecompiledPreamble.cpp
clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
clang/lib/Serialization/ASTWriter.cpp
clang/lib/Serialization/GlobalModuleIndex.cpp
clang/lib/Serialization/PCHContainerOperations.cpp
llvm/include/llvm/Bitcode/BitcodeWriter.h
llvm/include/llvm/Bitstream/BitstreamWriter.h
llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp
llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
llvm/tools/llvm-cat/llvm-cat.cpp
llvm/tools/llvm-modextract/llvm-modextract.cpp
llvm/unittests/Bitstream/BitstreamReaderTest.cpp
llvm/unittests/Bitstream/BitstreamWriterTest.cpp
Index: llvm/unittests/Bitstream/BitstreamWriterTest.cpp
===================================================================
--- llvm/unittests/Bitstream/BitstreamWriterTest.cpp
+++ llvm/unittests/Bitstream/BitstreamWriterTest.cpp
@@ -8,27 +8,31 @@
#include "llvm/Bitstream/BitstreamWriter.h"
#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/SmallString.h"
+#include "gmock/gmock.h"
#include "gtest/gtest.h"
+#include <vector>
+
using namespace llvm;
+using ::testing::IsEmpty;
+
namespace {
TEST(BitstreamWriterTest, emitBlob) {
- SmallString<64> Buffer;
+ std::vector<char> Buffer;
BitstreamWriter W(Buffer);
W.emitBlob("str", /* ShouldEmitSize */ false);
- EXPECT_EQ(StringRef("str\0", 4), Buffer);
+ EXPECT_EQ(StringRef("str\0", 4), StringRef(Buffer.data(), Buffer.size()));
}
TEST(BitstreamWriterTest, emitBlobWithSize) {
- SmallString<64> Buffer;
+ std::vector<char> Buffer;
{
BitstreamWriter W(Buffer);
W.emitBlob("str");
}
- SmallString<64> Expected;
+ std::vector<char> Expected;
{
BitstreamWriter W(Expected);
W.EmitVBR(3, 6);
@@ -38,21 +42,21 @@
W.Emit('r', 8);
W.Emit(0, 8);
}
- EXPECT_EQ(StringRef(Expected), Buffer);
+ EXPECT_EQ(Expected, Buffer);
}
TEST(BitstreamWriterTest, emitBlobEmpty) {
- SmallString<64> Buffer;
+ std::vector<char> Buffer;
BitstreamWriter W(Buffer);
W.emitBlob("", /* ShouldEmitSize */ false);
- EXPECT_EQ(StringRef(""), Buffer);
+ EXPECT_THAT(Buffer, IsEmpty());
}
TEST(BitstreamWriterTest, emitBlob4ByteAligned) {
- SmallString<64> Buffer;
+ std::vector<char> Buffer;
BitstreamWriter W(Buffer);
W.emitBlob("str0", /* ShouldEmitSize */ false);
- EXPECT_EQ(StringRef("str0"), Buffer);
+ EXPECT_EQ(StringRef("str0"), StringRef(Buffer.data(), Buffer.size()));
}
} // end namespace
Index: llvm/unittests/Bitstream/BitstreamReaderTest.cpp
===================================================================
--- llvm/unittests/Bitstream/BitstreamReaderTest.cpp
+++ llvm/unittests/Bitstream/BitstreamReaderTest.cpp
@@ -11,6 +11,8 @@
#include "llvm/Bitstream/BitstreamWriter.h"
#include "gtest/gtest.h"
+#include <vector>
+
using namespace llvm;
namespace {
@@ -96,7 +98,7 @@
StringRef BlobIn((const char *)BlobData.begin(), BlobSize);
// Write the bitcode.
- SmallVector<char, 1> Buffer;
+ std::vector<char> Buffer;
unsigned AbbrevID;
{
BitstreamWriter Stream(Buffer);
@@ -115,7 +117,7 @@
// Stream the buffer into the reader.
BitstreamCursor Stream(
- ArrayRef<uint8_t>((const uint8_t *)Buffer.begin(), Buffer.size()));
+ ArrayRef<uint8_t>((const uint8_t *)Buffer.data(), Buffer.size()));
// Header. Included in test so that we can run llvm-bcanalyzer to debug
// when there are problems.
Index: llvm/tools/llvm-modextract/llvm-modextract.cpp
===================================================================
--- llvm/tools/llvm-modextract/llvm-modextract.cpp
+++ llvm/tools/llvm-modextract/llvm-modextract.cpp
@@ -58,12 +58,12 @@
ExitOnErr(errorCodeToError(EC));
if (BinaryExtract) {
- SmallVector<char, 0> Result;
+ std::vector<char> Result;
BitcodeWriter Writer(Result);
- Result.append(Ms[ModuleIndex].getBuffer().begin(),
+ Result.insert(Result.end(), Ms[ModuleIndex].getBuffer().begin(),
Ms[ModuleIndex].getBuffer().end());
Writer.copyStrtab(Ms[ModuleIndex].getStrtab());
- Out->os() << Result;
+ Out->os().write(Result.data(), Result.size());
Out->keep();
return 0;
}
Index: llvm/tools/llvm-cat/llvm-cat.cpp
===================================================================
--- llvm/tools/llvm-cat/llvm-cat.cpp
+++ llvm/tools/llvm-cat/llvm-cat.cpp
@@ -54,7 +54,7 @@
ExitOnError ExitOnErr("llvm-cat: ");
LLVMContext Context;
- SmallVector<char, 0> Buffer;
+ std::vector<char> Buffer;
BitcodeWriter Writer(Buffer);
if (BinaryCat) {
for (const auto &InputFilename : InputFilenames) {
Index: llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
===================================================================
--- llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+++ llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
@@ -397,7 +397,7 @@
ModuleSummaryIndex MergedMIndex =
buildModuleSummaryIndex(*MergedM, nullptr, &PSI);
- SmallVector<char, 0> Buffer;
+ std::vector<char> Buffer;
BitcodeWriter W(Buffer);
// Save the module hash produced for the full bitcode, which will
@@ -409,7 +409,7 @@
W.writeModule(*MergedM, /*ShouldPreserveUseListOrder=*/false, &MergedMIndex);
W.writeSymtab();
W.writeStrtab();
- OS << Buffer;
+ OS.write(Buffer.data(), Buffer.size());
// If a minimized bitcode module was requested for the thin link, only
// the information that is needed by thin link will be written in the
@@ -423,7 +423,7 @@
&MergedMIndex);
W2.writeSymtab();
W2.writeStrtab();
- *ThinLinkOS << Buffer;
+ ThinLinkOS->write(Buffer.data(), Buffer.size());
}
}
Index: llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp
===================================================================
--- llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp
+++ llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp
@@ -24,7 +24,7 @@
ShouldCloneDef = [](const GlobalValue &) { return true; };
return TSM.withModuleDo([&](Module &M) {
- SmallVector<char, 1> ClonedModuleBuffer;
+ std::vector<char> ClonedModuleBuffer;
{
std::set<GlobalValue *> ClonedDefsInSrc;
Index: llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
===================================================================
--- llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -244,7 +244,7 @@
/// Class to manage the bitcode writing for a module.
class ModuleBitcodeWriter : public ModuleBitcodeWriterBase {
/// Pointer to the buffer allocated by caller for bitcode writing.
- const SmallVectorImpl<char> &Buffer;
+ const std::vector<char> &Buffer;
/// True if a module hash record should be written.
bool GenerateHash;
@@ -261,7 +261,7 @@
public:
/// Constructs a ModuleBitcodeWriter object for the given Module,
/// writing to the provided \p Buffer.
- ModuleBitcodeWriter(const Module &M, SmallVectorImpl<char> &Buffer,
+ ModuleBitcodeWriter(const Module &M, std::vector<char> &Buffer,
StringTableBuilder &StrtabBuilder,
BitstreamWriter &Stream, bool ShouldPreserveUseListOrder,
const ModuleSummaryIndex *Index, bool GenerateHash,
@@ -1987,7 +1987,7 @@
Record.push_back(Strings.size());
// Emit the sizes of the strings in the blob.
- SmallString<256> Blob;
+ std::vector<char> Blob;
{
BitstreamWriter W(Blob);
for (const Metadata *MD : Strings)
@@ -1999,11 +1999,14 @@
Record.push_back(Blob.size());
// Add the strings to the blob.
- for (const Metadata *MD : Strings)
- Blob.append(cast<MDString>(MD)->getString());
+ for (const Metadata *MD : Strings) {
+ StringRef MDStr = cast<MDString>(MD)->getString();
+ Blob.insert(Blob.end(), MDStr.begin(), MDStr.end());
+ }
// Emit the final record.
- Stream.EmitRecordWithBlob(createMetadataStringsAbbrev(), Record, Blob);
+ StringRef BlobStr(Blob.data(), Blob.size());
+ Stream.EmitRecordWithBlob(createMetadataStringsAbbrev(), Record, BlobStr);
Record.clear();
}
@@ -4285,7 +4288,7 @@
Stream.ExitBlock();
}
-static void writeInt32ToBuffer(uint32_t Value, SmallVectorImpl<char> &Buffer,
+static void writeInt32ToBuffer(uint32_t Value, std::vector<char> &Buffer,
uint32_t &Position) {
support::endian::write32le(&Buffer[Position], Value);
Position += 4;
@@ -4304,7 +4307,7 @@
/// uint32_t CPUType; // CPU specifier.
/// ... potentially more later ...
/// };
-static void emitDarwinBCHeaderAndTrailer(SmallVectorImpl<char> &Buffer,
+static void emitDarwinBCHeaderAndTrailer(std::vector<char> &Buffer,
const Triple &TT) {
unsigned CPUType = ~0U;
@@ -4361,7 +4364,7 @@
Stream.Emit(0xD, 4);
}
-BitcodeWriter::BitcodeWriter(SmallVectorImpl<char> &Buffer)
+BitcodeWriter::BitcodeWriter(std::vector<char> &Buffer)
: Buffer(Buffer), Stream(new BitstreamWriter(Buffer)) {
writeBitcodeHeader(*Stream);
}
@@ -4464,7 +4467,7 @@
bool ShouldPreserveUseListOrder,
const ModuleSummaryIndex *Index,
bool GenerateHash, ModuleHash *ModHash) {
- SmallVector<char, 0> Buffer;
+ std::vector<char> Buffer;
Buffer.reserve(256*1024);
// If this is darwin or another generic macho target, reserve space for the
@@ -4507,7 +4510,7 @@
void llvm::WriteIndexToFile(
const ModuleSummaryIndex &Index, raw_ostream &Out,
const std::map<std::string, GVSummaryMapTy> *ModuleToSummariesForIndex) {
- SmallVector<char, 0> Buffer;
+ std::vector<char> Buffer;
Buffer.reserve(256 * 1024);
BitcodeWriter Writer(Buffer);
@@ -4667,7 +4670,7 @@
void llvm::WriteThinLinkBitcodeToFile(const Module &M, raw_ostream &Out,
const ModuleSummaryIndex &Index,
const ModuleHash &ModHash) {
- SmallVector<char, 0> Buffer;
+ std::vector<char> Buffer;
Buffer.reserve(256 * 1024);
BitcodeWriter Writer(Buffer);
Index: llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
===================================================================
--- llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
+++ llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
@@ -49,7 +49,7 @@
struct BitstreamRemarkSerializerHelper {
/// Buffer used for encoding the bitstream before writing it to the final
/// stream.
- SmallVector<char, 1024> Encoded;
+ std::vector<char> Encoded;
/// Buffer used to construct records and pass to the bitstream writer.
SmallVector<uint64_t, 64> R;
/// The Bitstream writer.
Index: llvm/include/llvm/Bitstream/BitstreamWriter.h
===================================================================
--- llvm/include/llvm/Bitstream/BitstreamWriter.h
+++ llvm/include/llvm/Bitstream/BitstreamWriter.h
@@ -25,7 +25,7 @@
namespace llvm {
class BitstreamWriter {
- SmallVectorImpl<char> &Out;
+ std::vector<char> &Out;
/// CurBit - Always between 0 and 31 inclusive, specifies the next bit to use.
unsigned CurBit;
@@ -68,7 +68,7 @@
void WriteWord(unsigned Value) {
Value = support::endian::byte_swap<uint32_t, support::little>(Value);
- Out.append(reinterpret_cast<const char *>(&Value),
+ Out.insert(Out.end(), reinterpret_cast<const char *>(&Value),
reinterpret_cast<const char *>(&Value + 1));
}
@@ -81,8 +81,8 @@
}
public:
- explicit BitstreamWriter(SmallVectorImpl<char> &O)
- : Out(O), CurBit(0), CurValue(0), CurCodeSize(2) {}
+ explicit BitstreamWriter(std::vector<char> &O)
+ : Out(O), CurBit(0), CurValue(0), CurCodeSize(2) {}
~BitstreamWriter() {
assert(CurBit == 0 && "Unflushed data remaining");
Index: llvm/include/llvm/Bitcode/BitcodeWriter.h
===================================================================
--- llvm/include/llvm/Bitcode/BitcodeWriter.h
+++ llvm/include/llvm/Bitcode/BitcodeWriter.h
@@ -30,7 +30,7 @@
class raw_ostream;
class BitcodeWriter {
- SmallVectorImpl<char> &Buffer;
+ std::vector<char> &Buffer;
std::unique_ptr<BitstreamWriter> Stream;
StringTableBuilder StrtabBuilder{StringTableBuilder::RAW};
@@ -47,7 +47,7 @@
public:
/// Create a BitcodeWriter that writes to Buffer.
- BitcodeWriter(SmallVectorImpl<char> &Buffer);
+ BitcodeWriter(std::vector<char> &Buffer);
~BitcodeWriter();
Index: clang/lib/Serialization/PCHContainerOperations.cpp
===================================================================
--- clang/lib/Serialization/PCHContainerOperations.cpp
+++ clang/lib/Serialization/PCHContainerOperations.cpp
@@ -39,11 +39,11 @@
void HandleTranslationUnit(ASTContext &Ctx) override {
if (Buffer->IsComplete) {
// Make sure it hits disk now.
- *OS << Buffer->Data;
+ OS->write(Buffer->Data.data(), Buffer->Data.size());
OS->flush();
}
// Free the space of the temporary buffer.
- llvm::SmallVector<char, 0> Empty;
+ std::vector<char> Empty;
Buffer->Data = std::move(Empty);
}
};
Index: clang/lib/Serialization/GlobalModuleIndex.cpp
===================================================================
--- clang/lib/Serialization/GlobalModuleIndex.cpp
+++ clang/lib/Serialization/GlobalModuleIndex.cpp
@@ -906,7 +906,7 @@
}
// The output buffer, into which the global index will be written.
- SmallVector<char, 16> OutputBuffer;
+ std::vector<char> OutputBuffer;
{
llvm::BitstreamWriter OutputStream(OutputBuffer);
if (Builder.writeIndex(OutputStream))
Index: clang/lib/Serialization/ASTWriter.cpp
===================================================================
--- clang/lib/Serialization/ASTWriter.cpp
+++ clang/lib/Serialization/ASTWriter.cpp
@@ -1029,7 +1029,8 @@
ASTFileSignature Signature;
if (WritingModule &&
PP.getHeaderSearchInfo().getHeaderSearchOpts().ModulesHashContent) {
- Signature = createSignature(StringRef(Buffer.begin(), StartOfUnhashedControl));
+ Signature =
+ createSignature(StringRef(Buffer.data(), StartOfUnhashedControl));
Record.append(Signature.begin(), Signature.end());
Stream.EmitRecord(SIGNATURE, Record);
Record.clear();
@@ -4263,8 +4264,7 @@
SelectorOffsets[ID - FirstSelectorID] = Offset;
}
-ASTWriter::ASTWriter(llvm::BitstreamWriter &Stream,
- SmallVectorImpl<char> &Buffer,
+ASTWriter::ASTWriter(llvm::BitstreamWriter &Stream, std::vector<char> &Buffer,
InMemoryModuleCache &ModuleCache,
ArrayRef<std::shared_ptr<ModuleFileExtension>> Extensions,
bool IncludeTimestamps)
@@ -4321,7 +4321,7 @@
// Construct MemoryBuffer and update buffer manager.
ModuleCache.addBuiltPCM(OutputFile,
llvm::MemoryBuffer::getMemBufferCopy(
- StringRef(Buffer.begin(), Buffer.size())));
+ StringRef(Buffer.data(), Buffer.size())));
}
return Signature;
}
Index: clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
===================================================================
--- clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
+++ clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
@@ -25,6 +25,7 @@
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/raw_ostream.h"
#include <utility>
+#include <vector>
using namespace clang;
using namespace clang::serialized_diags;
@@ -250,7 +251,7 @@
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts;
/// The byte buffer for the serialized content.
- SmallString<1024> Buffer;
+ std::vector<char> Buffer;
/// The BitStreamWriter for the serialized diagnostics.
llvm::BitstreamWriter Stream;
Index: clang/lib/Frontend/PrecompiledPreamble.cpp
===================================================================
--- clang/lib/Frontend/PrecompiledPreamble.cpp
+++ clang/lib/Frontend/PrecompiledPreamble.cpp
@@ -179,12 +179,13 @@
return;
// Write the generated bitstream to "Out".
- *Out << getPCH();
+ std::vector<char> &PCHBuffer = getPCH();
+ Out->write(PCHBuffer.data(), PCHBuffer.size());
// Make sure it hits disk now.
Out->flush();
// Free the buffer.
- llvm::SmallVector<char, 0> Empty;
- getPCH() = std::move(Empty);
+ std::vector<char> Empty;
+ PCHBuffer = std::move(Empty);
Action.setEmittedPreamblePCH(getWriter());
}
Index: clang/lib/Frontend/ASTUnit.cpp
===================================================================
--- clang/lib/Frontend/ASTUnit.cpp
+++ clang/lib/Frontend/ASTUnit.cpp
@@ -215,7 +215,7 @@
}
struct ASTUnit::ASTWriterData {
- SmallString<128> Buffer;
+ std::vector<char> Buffer;
llvm::BitstreamWriter Stream;
ASTWriter Writer;
@@ -2322,11 +2322,8 @@
return false;
}
-static bool serializeUnit(ASTWriter &Writer,
- SmallVectorImpl<char> &Buffer,
- Sema &S,
- bool hasErrors,
- raw_ostream &OS) {
+static bool serializeUnit(ASTWriter &Writer, std::vector<char> &Buffer, Sema &S,
+ bool hasErrors, raw_ostream &OS) {
Writer.WriteAST(S, std::string(), nullptr, "", hasErrors);
// Write the generated bitstream to "Out".
@@ -2344,7 +2341,7 @@
return serializeUnit(WriterData->Writer, WriterData->Buffer,
getSema(), hasErrors, OS);
- SmallString<128> Buffer;
+ std::vector<char> Buffer;
llvm::BitstreamWriter Stream(Buffer);
InMemoryModuleCache ModuleCache;
ASTWriter Writer(Stream, Buffer, ModuleCache, {});
Index: clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
===================================================================
--- clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
+++ clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
@@ -308,7 +308,7 @@
std::move(OS));
// Free the memory for the temporary buffer.
- llvm::SmallVector<char, 0> Empty;
+ std::vector<char> Empty;
SerializedAST = std::move(Empty);
}
};
Index: clang/include/clang/Serialization/PCHContainerOperations.h
===================================================================
--- clang/include/clang/Serialization/PCHContainerOperations.h
+++ clang/include/clang/Serialization/PCHContainerOperations.h
@@ -10,10 +10,10 @@
#define LLVM_CLANG_SERIALIZATION_PCHCONTAINEROPERATIONS_H
#include "clang/Basic/Module.h"
-#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Support/MemoryBuffer.h"
#include <memory>
+#include <vector>
namespace llvm {
class raw_pwrite_stream;
@@ -28,7 +28,7 @@
struct PCHBuffer {
ASTFileSignature Signature;
- llvm::SmallVector<char, 0> Data;
+ std::vector<char> Data;
bool IsComplete;
};
Index: clang/include/clang/Serialization/ASTWriter.h
===================================================================
--- clang/include/clang/Serialization/ASTWriter.h
+++ clang/include/clang/Serialization/ASTWriter.h
@@ -120,7 +120,7 @@
llvm::BitstreamWriter &Stream;
/// The buffer associated with the bitstream.
- const SmallVectorImpl<char> &Buffer;
+ const std::vector<char> &Buffer;
/// The PCM manager which manages memory buffers for pcm files.
InMemoryModuleCache &ModuleCache;
@@ -532,7 +532,7 @@
public:
/// Create a new precompiled header writer that outputs to
/// the given bitstream.
- ASTWriter(llvm::BitstreamWriter &Stream, SmallVectorImpl<char> &Buffer,
+ ASTWriter(llvm::BitstreamWriter &Stream, std::vector<char> &Buffer,
InMemoryModuleCache &ModuleCache,
ArrayRef<std::shared_ptr<ModuleFileExtension>> Extensions,
bool IncludeTimestamps = true);
@@ -751,7 +751,7 @@
protected:
ASTWriter &getWriter() { return Writer; }
const ASTWriter &getWriter() const { return Writer; }
- SmallVectorImpl<char> &getPCH() const { return Buffer->Data; }
+ std::vector<char> &getPCH() const { return Buffer->Data; }
public:
PCHGenerator(const Preprocessor &PP, InMemoryModuleCache &ModuleCache,
Index: clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
===================================================================
--- clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
+++ clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
@@ -18,11 +18,12 @@
namespace doc {
template <typename T> static std::string writeInfo(T &I) {
- SmallString<2048> Buffer;
+ std::vector<char> Buffer;
llvm::BitstreamWriter Stream(Buffer);
ClangDocBitcodeWriter Writer(Stream);
Writer.emitBlock(I);
- return Buffer.str().str();
+ std::string Result(Buffer.data(), Buffer.size());
+ return Result;
}
std::string writeInfo(Info *I) {
Index: clang-tools-extra/clang-doc/Serialize.cpp
===================================================================
--- clang-tools-extra/clang-doc/Serialize.cpp
+++ clang-tools-extra/clang-doc/Serialize.cpp
@@ -14,6 +14,8 @@
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/SHA1.h"
+#include <vector>
+
using clang::comments::FullComment;
namespace clang {
@@ -180,11 +182,12 @@
// Serializing functions.
template <typename T> static std::string serialize(T &I) {
- SmallString<2048> Buffer;
+ std::vector<char> Buffer;
llvm::BitstreamWriter Stream(Buffer);
ClangDocBitcodeWriter Writer(Stream);
Writer.emitBlock(I);
- return Buffer.str().str();
+ std::string Result(Buffer.data(), Buffer.size());
+ return Result;
}
std::string serialize(std::unique_ptr<Info> &I) {
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits