martong marked 3 inline comments as done.
martong added inline comments.

================
Comment at: clang/lib/AST/ASTImporter.cpp:5109
     } else { // ODR violation.
       // FIXME HandleNameConflict
+      return make_error<ImportError>(ImportError::NameConflict);
----------------
a_sidorin wrote:
> Is this FIXME obsolete now?
That is not obsolete.  We should call `HandleNameConflict` as we do in other 
visit functions.  But it is not trivial how to do that, there are open 
questions which I cannot address in this PR: 
* Should we pass `D->getDeclName` or rather the name of the imported 
`ClassTemplateDecl` or should we import the name here (again)? 
* Should we pass the template args to `HandleNameConflict`?


================
Comment at: clang/lib/AST/ASTImporter.cpp:7823
+    auto Pos = ImportedDecls.find(FromD);
+    if (Pos != ImportedDecls.end()) {
+      // Import failed after the object was created.
----------------
a_sidorin wrote:
> I see the enabled test case, but does it cover the logic in this block?
Right, that is not strictly related. I have added relevant unit test cases for 
the error handling. This branch is handled in 
`ErrorHappensAfterCreatingTheNodeButBeforeLinkingThatToTheAST` test.


================
Comment at: clang/lib/AST/ASTImporter.cpp:7851
+    if (!getImportDeclErrorIfAny(FromD)) {
+      // Error encountered for the first time.
+      // After takeError the error is not usable any more in ToDOrErr.
----------------
a_sidorin wrote:
> Is it possible to get this error more than once?
Yes, that can happen in cyclic imports like: ClassTemplateDecl -> TemplatedDecl 
-> ClassTemplateDecl.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62373/new/

https://reviews.llvm.org/D62373



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to