a_sidorin added a comment.

Hi Gabor,
I like the new syntax. There are some comments inline; most of them are just 
stylish.



================
Comment at: lib/AST/ASTImporter.cpp:94
+  void updateAttrAndFlags(const Decl *From, Decl *To) {
+    // check if some flags or attrs are new in 'From' and copy into 'To'
+    // FIXME: other flags or attrs?
----------------
Comments should be complete sentences: start with a capital and end with a 
period.


================
Comment at: lib/AST/ASTImporter.cpp:114
+
+    // Always use theses functions to create a Decl during import. There are
+    // certain tasks which must be done after the Decl was created, e.g. we
----------------
these?


================
Comment at: lib/AST/ASTImporter.cpp:161
+      ToD->IdentifierNamespace = FromD->IdentifierNamespace;
+      if (FromD->hasAttrs())
+        for (const Attr *FromAttr : FromD->getAttrs())
----------------
Should we move the below operations into `updateAttrAndFlags()` and use it 
instead?


================
Comment at: lib/AST/ASTImporter.cpp:1587
   StructuralEquivalenceContext Ctx(
       Importer.getFromContext(), Importer.getToContext(),
+      Importer.getNonEquivalentDecls(), getStructuralEquivalenceKind(Importer),
----------------
(Thinking out loud) We need to introduce some method to return 
`StructuralEquivalenceContext` in ASTImporter. But this is an item for a 
separate patch, not this one.


================
Comment at: lib/AST/ASTImporter.cpp:1890
   TypedefNameDecl *ToTypedef;
-  if (IsAlias)
-    ToTypedef = TypeAliasDecl::Create(Importer.getToContext(), DC, StartL, Loc,
-                                      Name.getAsIdentifierInfo(), TInfo);
-  else
-    ToTypedef = TypedefDecl::Create(Importer.getToContext(), DC,
-                                    StartL, Loc,
-                                    Name.getAsIdentifierInfo(),
-                                    TInfo);
+  if (IsAlias && GetImportedOrCreateDecl<TypeAliasDecl>(
+                     ToTypedef, D, Importer.getToContext(), DC, StartL, Loc,
----------------
This is not strictly equivalent to the source condition. If 
GetImportedOrCreateDecl returns false, we'll fall to the `else` branch, and it 
doesn't seem correct to me.


================
Comment at: lib/AST/ASTImporter.cpp:4274
+                              TemplateParams))
+    return ToD;
+  return ToD;
----------------
Can we just ignore the return value by casting it to void here and in similar 
cases?


================
Comment at: lib/AST/ASTStructuralEquivalence.cpp:895
+  // If any of the records has external storage and we do a minimal check (or
+  // AST import) we assmue they are equivalent. (If we didn't have this
+  // assumption then `RecordDecl::LoadFieldsFromExternalStorage` could trigger
----------------
assume


Repository:
  rC Clang

https://reviews.llvm.org/D47632



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

Reply via email to