llvm-project/libcxxabi
Erik Pilkington 8a1cb33ba5 [demangler] Use a back-patching scheme to resolve forward references.
Strictly in a conversion operator's type, a <template-param> refers to a
<template-arg> that is further ahead in the mangled name. Instead of
doing a second parse to resolve these, introduce a
ForwardTemplateReference Node and back-patch the referenced
<template-arg> when we're in the right context.

This is also a correctness fix, previously we would only do a second
parse if the <template-param> was out of bounds in the current set of
<template-args>. This lead to misdemangles (gasp!) when the conversion
operator was a member of a templated struct, for instance.

llvm-svn: 328464
2018-03-25 22:50:33 +00:00
..
cmake Fix standalone test-suite run. 2018-01-17 22:07:09 +00:00
fuzz add cxa_demangle_fuzzer 2016-12-28 03:28:29 +00:00
include [libcxxabi] Clean up macro usage. 2017-03-01 11:42:01 +00:00
lib
src [demangler] Use a back-patching scheme to resolve forward references. 2018-03-25 22:50:33 +00:00
test [demangler] Use a back-patching scheme to resolve forward references. 2018-03-25 22:50:33 +00:00
www [CMake] Be more consistent about naming targets and components in libc++abi 2016-08-28 18:28:51 +00:00
.arcconfig [libcxxabi] Set up .arcconfig to point to new Diffusion CXXA repository 2017-12-04 23:14:03 +00:00
.clang-format Fully Reformat fallback_malloc.cpp 2017-03-04 03:23:15 +00:00
.gitignore .gitignore: ignore vim swap files 2015-12-04 02:15:02 +00:00
CMakeLists.txt [cmake] [libcxxabi] Fix find_path() problems when cross compiling 2018-01-22 19:41:05 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:28 +00:00
LICENSE.TXT Update LICENSE.TXT to 2017 2017-01-03 11:21:43 +00:00