Use llvm::sort instead of std::sort where possiblellvm::sort is beneficial even when we use the iterator-based overload,since it can optionally shuffle the elements (to detectnon-determinism). Ho
Use llvm::sort instead of std::sort where possiblellvm::sort is beneficial even when we use the iterator-based overload,since it can optionally shuffle the elements (to detectnon-determinism). However llvm::sort is not usable everywhere, forexample, in compiler-rt.Reviewed By: nhaehnleDifferential Revision: https://reviews.llvm.org/D130406
show more ...
Use callables directly in any_of, count_if, etc (NFC)
Silence some format specifier warningsThis solves a format specifier warning for char32_t being converted toan unsigned integer type, and multiple format specifier warnings forsize_t being conver
Silence some format specifier warningsThis solves a format specifier warning for char32_t being converted toan unsigned integer type, and multiple format specifier warnings forsize_t being converted to long.
[Clang][C++23] P2071 Named universal character escapesImplements [[ https://wg21.link/p2071r1 | P2071 Named Universal Character Escapes ]] - as an extension in all language mode, the patch not wa
[Clang][C++23] P2071 Named universal character escapesImplements [[ https://wg21.link/p2071r1 | P2071 Named Universal Character Escapes ]] - as an extension in all language mode, the patch not warn in c++23 mode will be done later once this paper is plenary approved (in July).We add * A code generator that transforms `UnicodeData.txt` and `NameAliases.txt` to a space efficient data structure that can be queried in `O(NameLength)` * A set of functions in `Unicode.h` to query that data, including * A function to find an exact match of a given Unicode character name * A function to perform a loose (ignoring case, space, underscore, medial hyphen) matching * A function returning the best matching codepoint for a given string per edit distance * Support of `\N{}` escape sequences in String and character Literals, with loose and typos diagnostics/fixits * Support of `\N{}` as UCN with loose matching diagnostics/fixits.Loose matching is considered an error to match closely the semantics of P2071.The generated data contributes to 280kB of data to the binaries.`UnicodeData.txt` and `NameAliases.txt` are not committed to the repository in this patch, and regenerating the data is a manual process.Reviewed By: tahonermannDifferential Revision: https://reviews.llvm.org/D123064