[PATCH] D148181: [Demangle] make llvm::demangle take a StringRef; NFC

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 13 06:02:57 PDT 2023


erichkeane added a comment.

We're C++17 compilation now, so we should be able to use `std::string_view` (and I think we're supposed to?).



================
Comment at: llvm/lib/Demangle/Demangle.cpp:31
   std::string Result;
-  const char *S = MangledName.c_str();
+  std::string Copy = MangledName.str();
+  const char *S = Copy.data();
----------------
`std::string` is implicitly constructible from a `std::string_view`, so I think on line 37 we can just do: `MangledName[0]` instead of `S[0]`, and just do `return MangledName` below, rather than constructing it every time, despite it being just destructed in every other branch.

Though, I guess the 'gotcha' here is that despite everything else not modifying the `S` here, that we're no longer able to use strlen for the length.   Perhaps this change should be more viral, in that the other demangle functions should take a `string_view` instead of a `const char *` as well.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D148181



More information about the cfe-commits mailing list