a_sidorin added a comment.

Hi Shafik,
Please find my answers inline.



================
Comment at: lib/AST/ASTImporter.cpp:3243
+
+  if (R) {
+    CXXDestructorDecl *ToDtor = cast<CXXDestructorDecl>(*R);
----------------
shafik wrote:
> a_sidorin wrote:
> > It's better to move this code to VisitFunctionDecl to keep all related 
> > stuff together.
> I am not sure I agree. Having everything in `VisitFunctionDecl` makes this 
> code harder to maintain. 
> 
> 
That's true, but I think it's better to put FunctionDecl refactoring as a 
separate commit - it would be  bigger than just putting some related stuff to 
the original function. We have the same problem with VisitRecordDecl, but, 
unfortunately, I still had no time to rearrange this stuff.


================
Comment at: lib/AST/ASTImporter.cpp:3246
+
+    auto Imp = importSeq(const_cast<FunctionDecl *>(D->getOperatorDelete()),
+                         D->getOperatorDeleteThisArg());
----------------
shafik wrote:
> a_sidorin wrote:
> > Moving this code to VisitFunctionDecl will also allow us not to create a 
> > dtor if this import fails.
> At what point in `VisitFunctionDecl` would you expect this change to bail out 
> of? A possible refactor would be to move this code to a separate function and 
> then call that function at that point in `VisitFunctionDecl`. This would 
> prevent `VisitFunctionDecl` from becoming even larger and I think address 
> your concern.
Just before line 3096, where a new dtor decl is being created.
If correct import of operator delete is required for successful import of dtor 
decl, it's better to check if it can be imported before a new dtor decl is 
created. So, it's better to put operator delete import  before the creation of 
a new declaration which is located in VisitFunctionDecl(). Otherwise, we will 
be able to create a declaration both invalid and available by AST lookup 
(because DeclContexts are already set).
Please correct me if I'm wrong.


Repository:
  rC Clang

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

https://reviews.llvm.org/D56651



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

Reply via email to