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