llvm-project/llvm/lib
Nico Weber ce67a41741 llvm-undname: Fix hex escapes in wchar_t, char16_t, char32_t strings
llvm-undname used to put '\x' in front of every pair of nibbles, but
u"\xD7\xFF" produces a string with 6 bytes: \xD7 \0 \xFF \0 (and \0\0). Correct
for a single character (plus terminating \0) is u\xD7FF instead.
Now, wchar_t, char16_t, and char32_t strings roundtrip from source to
clang-cl (and cl.exe) and then llvm-undname.

(...at least as long as it's not a string like L"\xD7FF" L"foo" which
gets demangled as L"\xD7FFfoo", where the compiler then considers the
"f" as part of the hex escape. That seems ok.)

Also add a comment saying that the "almost-valid" char32_t string I
added in my last commit is actually produced by compilers.

llvm-svn: 358857
2019-04-21 17:19:27 +00:00
..
Analysis [ConstantRange] Add getNonEmpty() constructor 2019-04-21 15:22:54 +00:00
AsmParser Add LLVM IR debug info support for Fortran COMMON blocks 2019-04-08 19:13:55 +00:00
BinaryFormat [XCOFF] Add functionality for parsing AIX XCOFF object file headers 2019-04-04 00:53:21 +00:00
Bitcode Use llvm::lower_bound. NFC 2019-04-12 02:02:06 +00:00
CodeGen Revert r358800. Breaks Obsequi from the test suite. 2019-04-20 21:25:00 +00:00
DebugInfo [llvm-symbolizer] Fix section index at the end of a section 2019-04-20 13:00:09 +00:00
Demangle llvm-undname: Fix hex escapes in wchar_t, char16_t, char32_t strings 2019-04-21 17:19:27 +00:00
ExecutionEngine [JITLink] Remove an overly strict error check in JITLink's eh-frame parser. 2019-04-21 04:48:32 +00:00
FuzzMutate [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
Fuzzer
IR [ConstantRange] Add saturating add/sub methods 2019-04-21 15:23:05 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LTO [NewPassManager] Adding pass tuning options: loop vectorize. 2019-04-19 16:11:59 +00:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker [Linker] Fix crash handling appending linkage 2019-03-20 19:20:07 +00:00
MC [llvm] Prevent duplicate files in debug line header in dwarf 5: another attempt 2019-04-19 02:26:56 +00:00
MCA [MCA] Add an experimental MicroOpQueue stage. 2019-03-29 12:15:37 +00:00
Object [WebAssembly] Object: Improve error messages on invalid section 2019-04-20 00:11:46 +00:00
ObjectYAML MinidumpYAML: Fix ambiguity between std::make_unique and llvm::make_unique 2019-04-18 15:06:03 +00:00
Option Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Passes Remove the EnableEarlyCSEMemSSA set of options from the legacy 2019-04-19 22:18:53 +00:00
ProfileData Change some StringRef::data() reinterpret_cast to bytes_begin() or arrayRefFromStringRef() 2019-04-07 03:58:42 +00:00
Remarks [Remarks] Fix mismatched delete due to missing virtual destructor 2019-03-20 17:44:24 +00:00
Support [CachePruning] Simplify comparator 2019-04-21 06:17:40 +00:00
TableGen [TableGen] Introduce !listsplat 'binary' operator 2019-04-10 18:26:36 +00:00
Target [ARM] Rewrite isLegalT2AddressImmediate 2019-04-21 09:54:29 +00:00
Testing Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TextAPI [TextAPI] Prefix all architecture enums to fix the build on i386. 2019-04-04 22:56:50 +00:00
ToolDrivers [llvm-ar][libObject] Fix relative paths when nesting thin archives. 2019-02-13 23:39:41 +00:00
Transforms [CorrelatedValuePropagation] Mark subs that we know not to wrap with nuw/nsw. 2019-04-20 13:14:18 +00:00
WindowsManifest Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
XRay Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00
LLVMBuild.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00