[PATCH] D48773: [ASTImporter] Fix import of objects with anonymous types

Balázs Kéri via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 3 08:32:16 PDT 2018

balazske added inline comments.

Comment at: lib/AST/ASTImporter.cpp:2085
+          } else {
+            if (!IsStructuralMatch(D, FoundRecord, false))
martong wrote:
> a_sidorin wrote:
> > Is it possible to use the added code for the entire condition `if (auto *FoundRecord = dyn_cast<RecordDecl>(Found))`, replacing its body? Our structural matching already knows how to handle unnamed structures, and the upper code partially duplicates `IsStructurallyEquivalent(StructuralEquivalenceContext &Context,RecordDecl *D1, RecordDecl *D2)`. Can we change structural matching to handle this stuff instead of doing it in ASTNodeImporter?
> Yes, this is a good point, updated the patch accordingly.
My idea was to remove this whole `if (!SearchName)` branch, but some restructuring of the next conditions may be needed. Setting of `PrevDecl` in the `if` branch does not look correct (if `!SearchName` is false it is never set, unlike in the old code).

  rC Clang


More information about the cfe-commits mailing list