Author: martong Date: Mon Jan 7 06:05:19 2019 New Revision: 350521 URL: http://llvm.org/viewvc/llvm-project?rev=350521&view=rev Log: [CTU] Make loadExternalAST return with non nullptr on success
Summary: In loadExternalAST we return with either an error or with a valid ASTUnit pointer which should not be a nullptr. This prevents in the call site any superfluous check for being a nullptr. Reviewers: xazax.hun, a_sidorin, Szelethus, balazske Subscribers: rnkovacs, dkrupp, gamesh411, cfe-commits Differential Revision: https://reviews.llvm.org/D55280 Modified: cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp Modified: cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h?rev=350521&r1=350520&r2=350521&view=diff ============================================================================== --- cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h (original) +++ cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h Mon Jan 7 06:05:19 2019 @@ -130,8 +130,9 @@ public: /// \p IndexName. In case the declaration is found in the index the /// corresponding AST file will be loaded. /// - /// \return Returns an ASTUnit that contains the definition of the looked up - /// function. + /// \return Returns a pointer to the ASTUnit that contains the definition of + /// the looked up function or an Error. + /// The returned pointer is never a nullptr. /// /// Note that the AST files should also be in the \p CrossTUDir. llvm::Expected<ASTUnit *> loadExternalAST(StringRef LookupName, Modified: cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp?rev=350521&r1=350520&r2=350521&view=diff ============================================================================== --- cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp (original) +++ cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp Mon Jan 7 06:05:19 2019 @@ -208,9 +208,6 @@ CrossTranslationUnitContext::getCrossTUD if (!ASTUnitOrError) return ASTUnitOrError.takeError(); ASTUnit *Unit = *ASTUnitOrError; - if (!Unit) - return llvm::make_error<IndexError>( - index_error_code::failed_to_get_external_ast); assert(&Unit->getFileManager() == &Unit->getASTContext().getSourceManager().getFileManager()); @@ -324,6 +321,9 @@ llvm::Expected<ASTUnit *> CrossTranslati } else { Unit = FnUnitCacheEntry->second; } + if (!Unit) + return llvm::make_error<IndexError>( + index_error_code::failed_to_get_external_ast); return Unit; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits