diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CrossTU/CrossTranslationUnit.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp b/clang/lib/CrossTU/CrossTranslationUnit.cpp index 7d4f0ec9b42..ec8ac6498ff 100644 --- a/clang/lib/CrossTU/CrossTranslationUnit.cpp +++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -269,7 +269,9 @@ CrossTranslationUnitContext::importDefinition(const FunctionDecl *FD) { ASTImporter &Importer = getOrCreateASTImporter(FD->getASTContext()); auto *ToDecl = - cast<FunctionDecl>(Importer.Import(const_cast<FunctionDecl *>(FD))); + cast_or_null<FunctionDecl>(Importer.Import(const_cast<FunctionDecl *>(FD))); + if (!ToDecl) + return llvm::make_error<IndexError>(index_error_code::failed_import); assert(ToDecl->hasBody()); assert(FD->hasBody() && "Functions already imported should have body."); ++NumGetCTUSuccess; |

