a.sidorin added a comment.

Hello Peter,

Patch is almost OK but there are some minor issues.



================
Comment at: lib/AST/ASTImporter.cpp:5549
+  Expr *BaseE = Importer.Import(E->getBase());
+  if (!BaseE)
+    return nullptr;
----------------
szepet wrote:
> xazax.hun wrote:
> > Does `E->getBase()` guaranteed to return non-null? What happens when this 
> > node was constructed using EmptyShell? Shouldn't we check for that somehow? 
> > When can that happen?
> The import process of ArraySubscriptExpr and UnaryOperator (and probably more 
> other classes) are not prepared for this case as well. Not sure if this can 
> be encountered in a complete AST.
> However, I think a lazy evaluated && operator won't hurt the performance and 
> at least we are going to be prepared for this case.
  Expr *getBase() const { return cast<Expr>(Base); }
This means it is always non-null, I guess.


================
Comment at: lib/AST/ASTImporter.cpp:5552
+
+  TypeSourceInfo *ScopeInfo = Importer.Import(E->getScopeTypeInfo());
+
----------------
Source ScopeInfo can be null but we still need to check the result.


================
Comment at: unittests/AST/ASTImporterTest.cpp:546
+                 "void declToImport(int *p) {"
+                 "p->T::~T();"
+                 "}",
----------------
 #  Needs to be aligned.
 # Unused templates are common source of test failures on Windows (MSVC). Could 
you add a template instantiation (or check it works on Windows as expected)?


https://reviews.llvm.org/D38843



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

Reply via email to