[Demangle] avoid more std::string_view::substr
authorNick Desaulniers <ndesaulniers@google.com>
Thu, 25 May 2023 21:29:12 +0000 (14:29 -0700)
committerNick Desaulniers <ndesaulniers@google.com>
Thu, 25 May 2023 21:35:13 +0000 (14:35 -0700)
commitee740b714ba0de41f48a4fb4717fa9b9a22fedf2
tree7db99bb32dc9d8ee27bd7c63dd1be9a29b777a99
parentecc70b4474302e01c1d29a672d29fb20c77608f1
[Demangle] avoid more std::string_view::substr

In D148959, I removed usage of std::string_view::substr because it may
throw, and libcxxabi cannot use such code.  I missed one instance in
llvm::starts_with.  That is blocking copying the code back upstream in
D148566.

Mark these helpers noexcept (as they are in C++20) as well, to remind
future travelers.

Make these changes upstream, and copy them back downstream using
libcxxabi/src/demangle/cp-to-llvm.sh.

Reviewed By: #libc_abi, MaskRay, ldionne

Differential Revision: https://reviews.llvm.org/D151260
libcxxabi/src/demangle/StringViewExtras.h
llvm/include/llvm/Demangle/StringViewExtras.h