Author: juliehockett Date: Thu Aug 2 17:40:11 2018 New Revision: 338796 URL: http://llvm.org/viewvc/llvm-project?rev=338796&view=rev Log: [clang-doc] Fix unique_ptr error on bots
Explicitly return the base unique_ptr type, as some of the older compilers on the bots don't support full C++11. Differential Revision: https://reviews.llvm.org/D50208 Modified: clang-tools-extra/trunk/clang-doc/Serialize.cpp Modified: clang-tools-extra/trunk/clang-doc/Serialize.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-doc/Serialize.cpp?rev=338796&r1=338795&r2=338796&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-doc/Serialize.cpp (original) +++ clang-tools-extra/trunk/clang-doc/Serialize.cpp Thu Aug 2 17:40:11 2018 @@ -329,7 +329,7 @@ std::unique_ptr<Info> emitInfo(const Nam return nullptr; auto I = llvm::make_unique<NamespaceInfo>(); populateInfo(*I, D, FC); - return I; + return std::unique_ptr<Info>{std::move(I)}; } std::unique_ptr<Info> emitInfo(const RecordDecl *D, const FullComment *FC, @@ -343,7 +343,7 @@ std::unique_ptr<Info> emitInfo(const Rec parseFields(*I, D, PublicOnly); if (const auto *C = dyn_cast<CXXRecordDecl>(D)) parseBases(*I, C); - return I; + return std::unique_ptr<Info>{std::move(I)}; } std::unique_ptr<Info> emitInfo(const FunctionDecl *D, const FullComment *FC, @@ -362,7 +362,7 @@ std::unique_ptr<Info> emitInfo(const Fun else I->USR = SymbolID(); I->ChildFunctions.push_back(std::move(Func)); - return I; + return std::unique_ptr<Info>{std::move(I)}; } std::unique_ptr<Info> emitInfo(const CXXMethodDecl *D, const FullComment *FC, @@ -383,7 +383,7 @@ std::unique_ptr<Info> emitInfo(const CXX auto I = llvm::make_unique<RecordInfo>(); I->USR = ParentUSR; I->ChildFunctions.push_back(std::move(Func)); - return I; + return std::unique_ptr<Info>{std::move(I)}; } std::unique_ptr<Info> emitInfo(const EnumDecl *D, const FullComment *FC, @@ -400,18 +400,16 @@ std::unique_ptr<Info> emitInfo(const Enu if (!Enum.Namespace.empty()) { switch (Enum.Namespace[0].RefType) { case InfoType::IT_namespace: { - std::unique_ptr<Info> IPtr = llvm::make_unique<NamespaceInfo>(); - NamespaceInfo *I = static_cast<NamespaceInfo *>(IPtr.get()); + auto I = llvm::make_unique<NamespaceInfo>(); I->USR = Enum.Namespace[0].USR; I->ChildEnums.push_back(std::move(Enum)); - return IPtr; + return std::unique_ptr<Info>{std::move(I)}; } case InfoType::IT_record: { - std::unique_ptr<Info> IPtr = llvm::make_unique<RecordInfo>(); - RecordInfo *I = static_cast<RecordInfo *>(IPtr.get()); + auto I = llvm::make_unique<RecordInfo>(); I->USR = Enum.Namespace[0].USR; I->ChildEnums.push_back(std::move(Enum)); - return IPtr; + return std::unique_ptr<Info>{std::move(I)}; } default: break; @@ -422,7 +420,7 @@ std::unique_ptr<Info> emitInfo(const Enu auto I = llvm::make_unique<NamespaceInfo>(); I->USR = SymbolID(); I->ChildEnums.push_back(std::move(Enum)); - return I; + return std::unique_ptr<Info>{std::move(I)}; } } // namespace serialize _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits