r348923 - [ASTImporter] Remove import of definition from GetAlreadyImportedOrNull
Gabor Marton via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 12 03:22:55 PST 2018
Author: martong
Date: Wed Dec 12 03:22:55 2018
New Revision: 348923
URL: http://llvm.org/viewvc/llvm-project?rev=348923&view=rev
Log:
[ASTImporter] Remove import of definition from GetAlreadyImportedOrNull
Summary: a_sidorin
Reviewers: a.sidorin
Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits
Differential Revision: https://reviews.llvm.org/D53755
Modified:
cfe/trunk/include/clang/AST/ASTImporter.h
cfe/trunk/lib/AST/ASTImporter.cpp
Modified: cfe/trunk/include/clang/AST/ASTImporter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTImporter.h?rev=348923&r1=348922&r2=348923&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/ASTImporter.h (original)
+++ cfe/trunk/include/clang/AST/ASTImporter.h Wed Dec 12 03:22:55 2018
@@ -209,7 +209,7 @@ class Attr;
/// Return the copy of the given declaration in the "to" context if
/// it has already been imported from the "from" context. Otherwise return
/// NULL.
- Decl *GetAlreadyImportedOrNull(Decl *FromD);
+ Decl *GetAlreadyImportedOrNull(const Decl *FromD) const;
/// Import the given declaration context from the "from"
/// AST context into the "to" AST context.
Modified: cfe/trunk/lib/AST/ASTImporter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=348923&r1=348922&r2=348923&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ASTImporter.cpp (original)
+++ cfe/trunk/lib/AST/ASTImporter.cpp Wed Dec 12 03:22:55 2018
@@ -1580,6 +1580,9 @@ Error ASTNodeImporter::ImportDeclParts(
return Err;
ToD = cast_or_null<NamedDecl>(Importer.GetAlreadyImportedOrNull(D));
+ if (ToD)
+ if (Error Err = ASTNodeImporter(*this).ImportDefinitionIfNeeded(D, ToD))
+ return Err;
return Error::success();
}
@@ -7745,17 +7748,12 @@ Attr *ASTImporter::Import(const Attr *Fr
return ToAttr;
}
-Decl *ASTImporter::GetAlreadyImportedOrNull(Decl *FromD) {
- llvm::DenseMap<Decl *, Decl *>::iterator Pos = ImportedDecls.find(FromD);
- if (Pos != ImportedDecls.end()) {
- Decl *ToD = Pos->second;
- // FIXME: move this call to ImportDeclParts().
- if (Error Err = ASTNodeImporter(*this).ImportDefinitionIfNeeded(FromD, ToD))
- llvm::consumeError(std::move(Err));
- return ToD;
- } else {
+Decl *ASTImporter::GetAlreadyImportedOrNull(const Decl *FromD) const {
+ auto Pos = ImportedDecls.find(FromD);
+ if (Pos != ImportedDecls.end())
+ return Pos->second;
+ else
return nullptr;
- }
}
Expected<Decl *> ASTImporter::Import_New(Decl *FromD) {
More information about the cfe-commits
mailing list