[PATCH] D58668: [ASTImporter] Fix redecl failures of FunctionTemplateSpec

Aleksei Sidorin via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Mar 3 10:56:43 PST 2019


a_sidorin added a comment.

Hi Gabor,
The patch looks almost good bu I have some comments inline.



================
Comment at: lib/AST/ASTImporter.cpp:3002
 
+  // Check if we have found an existing definition.  Returns with that
+  // definition if yes, otherwise returns null.
----------------
I like this lambda. To make the code even better, we can move this lambda outside of VisitFunctionDecl because this method is already pretty big.


================
Comment at: unittests/AST/ASTImporterTest.cpp:3862
 
+  void CheckPreviousDecl(Decl *To0, Decl *To1) {
+    ASSERT_NE(To0, To1);
----------------
I don't like numbers. Maybe `To0` and `To1` are `LastDecl` and `ImportedDecl`, correspondingly?


================
Comment at: unittests/AST/ASTImporterTest.cpp:3881
+    if (auto *From0F = dyn_cast<FunctionDecl>(To0)) {
+      auto *To0F = cast<FunctionDecl>(To0);
+      if (From0F->getTemplatedKind() ==
----------------
To0 and From0F actually have the same value, and To0F is unused.


================
Comment at: unittests/AST/ASTImporterTest.cpp:3884
+          FunctionDecl::TK_FunctionTemplateSpecialization) {
+        EXPECT_EQ(To0->getCanonicalDecl(), To1->getCanonicalDecl());
+        // There may be a hidden fwd spec decl before a spec decl.
----------------
If I don't miss something, this assumption does not depend on To0 and To1 kind and can be moved out of the condition, to the function scope.


Repository:
  rC Clang

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

https://reviews.llvm.org/D58668





More information about the cfe-commits mailing list