This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG7231c9966e52: [clang-doc] Fix typedef/using output. (authored by brettw).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136638/new/ https://reviews.llvm.org/D136638 Files: clang-tools-extra/clang-doc/BitcodeReader.cpp clang-tools-extra/clang-doc/BitcodeWriter.cpp clang-tools-extra/clang-doc/Representation.h clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
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 @@ -183,11 +183,33 @@ I.Underlying = TypeInfo("unsigned"); I.IsUsing = true; + CommentInfo Top; + Top.Kind = "FullComment"; + + Top.Children.emplace_back(std::make_unique<CommentInfo>()); + CommentInfo *BlankLine = Top.Children.back().get(); + BlankLine->Kind = "ParagraphComment"; + BlankLine->Children.emplace_back(std::make_unique<CommentInfo>()); + BlankLine->Children.back()->Kind = "TextComment"; + + I.Description.emplace_back(std::move(Top)); + std::string WriteResult = writeInfo(&I); EXPECT_TRUE(WriteResult.size() > 0); std::vector<std::unique_ptr<Info>> ReadResults = readInfo(WriteResult, 1); CheckTypedefInfo(&I, InfoAsTypedef(ReadResults[0].get())); + + // Check one with no IsUsing set, no description, and no definition location. + TypedefInfo I2; + I2.Name = "SomethingElse"; + I2.IsUsing = false; + I2.Underlying = TypeInfo("int"); + + WriteResult = writeInfo(&I2); + EXPECT_TRUE(WriteResult.size() > 0); + ReadResults = readInfo(WriteResult, 1); + CheckTypedefInfo(&I2, InfoAsTypedef(ReadResults[0].get())); } TEST(SerializeTest, emitInfoWithCommentBitcode) { Index: clang-tools-extra/clang-doc/Representation.h =================================================================== --- clang-tools-extra/clang-doc/Representation.h +++ clang-tools-extra/clang-doc/Representation.h @@ -365,7 +365,7 @@ // using MyVector = std::vector<int> // False means it's a C-style typedef: // typedef std::vector<int> MyVector; - bool IsUsing; + bool IsUsing = false; }; struct BaseRecordInfo : public RecordInfo { Index: clang-tools-extra/clang-doc/BitcodeWriter.cpp =================================================================== --- clang-tools-extra/clang-doc/BitcodeWriter.cpp +++ clang-tools-extra/clang-doc/BitcodeWriter.cpp @@ -432,6 +432,8 @@ emitRecord(T.Name, TYPEDEF_NAME); for (const auto &N : T.Namespace) emitBlock(N, FieldId::F_namespace); + for (const auto &CI : T.Description) + emitBlock(CI); if (T.DefLoc) emitRecord(*T.DefLoc, TYPEDEF_DEFLOCATION); emitRecord(T.IsUsing, TYPEDEF_IS_USING); Index: clang-tools-extra/clang-doc/BitcodeReader.cpp =================================================================== --- clang-tools-extra/clang-doc/BitcodeReader.cpp +++ clang-tools-extra/clang-doc/BitcodeReader.cpp @@ -368,28 +368,27 @@ } template <> llvm::Expected<CommentInfo *> getCommentInfo(FunctionInfo *I) { - I->Description.emplace_back(); - return &I->Description.back(); + return &I->Description.emplace_back(); } template <> llvm::Expected<CommentInfo *> getCommentInfo(NamespaceInfo *I) { - I->Description.emplace_back(); - return &I->Description.back(); + return &I->Description.emplace_back(); } template <> llvm::Expected<CommentInfo *> getCommentInfo(RecordInfo *I) { - I->Description.emplace_back(); - return &I->Description.back(); + return &I->Description.emplace_back(); } template <> llvm::Expected<CommentInfo *> getCommentInfo(MemberTypeInfo *I) { - I->Description.emplace_back(); - return &I->Description.back(); + return &I->Description.emplace_back(); } template <> llvm::Expected<CommentInfo *> getCommentInfo(EnumInfo *I) { - I->Description.emplace_back(); - return &I->Description.back(); + return &I->Description.emplace_back(); +} + +template <> llvm::Expected<CommentInfo *> getCommentInfo(TypedefInfo *I) { + return &I->Description.emplace_back(); } template <> llvm::Expected<CommentInfo *> getCommentInfo(CommentInfo *I) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits