forked from OSchip/llvm-project
[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 llvm-svn: 350521
This commit is contained in:
parent
90f4b94da3
commit
3081690c84
|
@ -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,
|
||||
|
|
|
@ -208,9 +208,6 @@ CrossTranslationUnitContext::getCrossTUDefinition(const FunctionDecl *FD,
|
|||
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 *> CrossTranslationUnitContext::loadExternalAST(
|
|||
} else {
|
||||
Unit = FnUnitCacheEntry->second;
|
||||
}
|
||||
if (!Unit)
|
||||
return llvm::make_error<IndexError>(
|
||||
index_error_code::failed_to_get_external_ast);
|
||||
return Unit;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue