forked from eden-emu/eden
		
	demangle: Update to llvm/llvm-project@ecbc812e0c
This commit is contained in:
		
							parent
							
								
									c1e57ad358
								
							
						
					
					
						commit
						1ab3bd5a5e
					
				
					 8 changed files with 2304 additions and 2193 deletions
				
			
		
							
								
								
									
										32
									
								
								externals/demangle/llvm/Demangle/StringView.h
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								externals/demangle/llvm/Demangle/StringView.h
									
										
									
									
										vendored
									
									
								
							|  | @ -1,5 +1,5 @@ | |||
| //===--- StringView.h -------------------------------------------*- C++ -*-===//
 | ||||
| //
 | ||||
| //===--- StringView.h ----------------*- mode:c++;eval:(read-only-mode) -*-===//
 | ||||
| //       Do not edit! See README.txt.
 | ||||
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | ||||
| // See https://llvm.org/LICENSE.txt for license information.
 | ||||
| // SPDX-FileCopyrightText: Part of the LLVM Project
 | ||||
|  | @ -8,6 +8,9 @@ | |||
| //===----------------------------------------------------------------------===//
 | ||||
| //
 | ||||
| // FIXME: Use std::string_view instead when we support C++17.
 | ||||
| // There are two copies of this file in the source tree.  The one under
 | ||||
| // libcxxabi is the original and the one under llvm is the copy.  Use
 | ||||
| // cp-to-llvm.sh to update the copy.  See README.txt for more details.
 | ||||
| //
 | ||||
| //===----------------------------------------------------------------------===//
 | ||||
| 
 | ||||
|  | @ -15,7 +18,6 @@ | |||
| #define DEMANGLE_STRINGVIEW_H | ||||
| 
 | ||||
| #include "DemangleConfig.h" | ||||
| #include <algorithm> | ||||
| #include <cassert> | ||||
| #include <cstring> | ||||
| 
 | ||||
|  | @ -37,29 +39,23 @@ public: | |||
|   StringView(const char *Str) : First(Str), Last(Str + std::strlen(Str)) {} | ||||
|   StringView() : First(nullptr), Last(nullptr) {} | ||||
| 
 | ||||
|   StringView substr(size_t From) const { | ||||
|     return StringView(begin() + From, size() - From); | ||||
|   StringView substr(size_t Pos, size_t Len = npos) const { | ||||
|     assert(Pos <= size()); | ||||
|     if (Len > size() - Pos) | ||||
|       Len = size() - Pos; | ||||
|     return StringView(begin() + Pos, Len); | ||||
|   } | ||||
| 
 | ||||
|   size_t find(char C, size_t From = 0) const { | ||||
|     size_t FindBegin = std::min(From, size()); | ||||
|     // Avoid calling memchr with nullptr.
 | ||||
|     if (FindBegin < size()) { | ||||
|     if (From < size()) { | ||||
|       // Just forward to memchr, which is faster than a hand-rolled loop.
 | ||||
|       if (const void *P = ::memchr(First + FindBegin, C, size() - FindBegin)) | ||||
|       if (const void *P = ::memchr(First + From, C, size() - From)) | ||||
|         return size_t(static_cast<const char *>(P) - First); | ||||
|     } | ||||
|     return npos; | ||||
|   } | ||||
| 
 | ||||
|   StringView substr(size_t From, size_t To) const { | ||||
|     if (To >= size()) | ||||
|       To = size() - 1; | ||||
|     if (From >= size()) | ||||
|       From = size() - 1; | ||||
|     return StringView(First + From, First + To); | ||||
|   } | ||||
| 
 | ||||
|   StringView dropFront(size_t N = 1) const { | ||||
|     if (N >= size()) | ||||
|       N = size(); | ||||
|  | @ -106,7 +102,7 @@ public: | |||
|   bool startsWith(StringView Str) const { | ||||
|     if (Str.size() > size()) | ||||
|       return false; | ||||
|     return std::equal(Str.begin(), Str.end(), begin()); | ||||
|     return std::strncmp(Str.begin(), begin(), Str.size()) == 0; | ||||
|   } | ||||
| 
 | ||||
|   const char &operator[](size_t Idx) const { return *(begin() + Idx); } | ||||
|  | @ -119,7 +115,7 @@ public: | |||
| 
 | ||||
| inline bool operator==(const StringView &LHS, const StringView &RHS) { | ||||
|   return LHS.size() == RHS.size() && | ||||
|          std::equal(LHS.begin(), LHS.end(), RHS.begin()); | ||||
|          std::strncmp(LHS.begin(), RHS.begin(), LHS.size()) == 0; | ||||
| } | ||||
| 
 | ||||
| DEMANGLE_NAMESPACE_END | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 lat9nq
						lat9nq