[PATCH] D133072: [clang] fix profiling of template arguments of template and declaration kind

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 1 06:19:28 PDT 2022


erichkeane added a comment.

Generally happy here.  Two quick suggestions, otherewise LGTM.



================
Comment at: clang/lib/AST/ASTContext.cpp:5119
     // Find the insert position again.
-    DependentTemplateSpecializationTypes.FindNodeOrInsertPos(ID, InsertPos);
+    [[maybe_unused]] auto *Nothing =
+        DependentTemplateSpecializationTypes.FindNodeOrInsertPos(ID, InsertPos);
----------------
Instead of `maybe_unused` put this and the assert inside of a `#if NDEBUG` so we don't do the `Nothing` work.  Same below.


================
Comment at: clang/lib/Sema/SemaTemplate.cpp:5817
           // fall back to just producing individual arguments.
-          Converted.insert(Converted.end(),
-                           ArgumentPack.begin(), ArgumentPack.end());
+          for (const TemplateArgument &I : ArgumentPack)
+            Converted.push_back(Context.getCanonicalTemplateArgument(I));
----------------
Ooh, thats a transform!  

`llvm::transform(ArgumentPack, std::back_inserter(Converted), [](const auto &I) { return Context.getCanonicalTemplateArgument(I));`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133072



More information about the cfe-commits mailing list